From da532ab93ddb8a58f8fd4ace7e547f44587b140a Mon Sep 17 00:00:00 2001 From: WGH Date: Sat, 6 Sep 2025 20:37:10 +0300 Subject: [PATCH] Fix support for legacy compression env variables (#21533) Commit b6eb8dff649b0f46c12d24e89aa11254fb0132fa renamed compression setting environment variables to follow consistent style. Although it preserved backward compatibility for the most part (i.e. it handled MINIO_COMPRESS_ALLOW_ENCRYPTION, MINIO_COMPRESS_EXTENSIONS, and MINIO_COMPRESS_MIME_TYPES), MINIO_COMPRESS_ENABLE was left behind. Additionally, due to incorrect fallback ordering, and DefaultKVS containing enable=off allow_encryption=off (so kvs.Get should've been tried last), that commit broke MINIO_COMPRESS_ALLOW_ENCRYPTION (even though it appeared to be handled), and even older MINIO_COMPRESS, too. The legacy MIME types and extensions variables take precedence over both config and new variables, so they don't need fixing. --- internal/config/compress/compress.go | 11 +++++++---- internal/config/compress/legacy.go | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/internal/config/compress/compress.go b/internal/config/compress/compress.go index ce393bc55..dc050e3ba 100644 --- a/internal/config/compress/compress.go +++ b/internal/config/compress/compress.go @@ -93,9 +93,12 @@ func LookupConfig(kvs config.KVS) (Config, error) { return cfg, err } - compress := env.Get(EnvCompressState, kvs.Get(config.Enable)) + compress := env.Get(EnvCompressState, "") if compress == "" { - compress = env.Get(EnvCompress, "") + compress = env.Get(EnvCompressEnableLegacy, "") + if compress == "" { + compress = env.Get(EnvCompress, kvs.Get(config.Enable)) + } } cfg.Enabled, err = config.ParseBool(compress) if err != nil { @@ -109,9 +112,9 @@ func LookupConfig(kvs config.KVS) (Config, error) { return cfg, nil } - allowEnc := env.Get(EnvCompressAllowEncryption, kvs.Get(AllowEncrypted)) + allowEnc := env.Get(EnvCompressAllowEncryption, "") if allowEnc == "" { - allowEnc = env.Get(EnvCompressAllowEncryptionLegacy, "") + allowEnc = env.Get(EnvCompressAllowEncryptionLegacy, kvs.Get(AllowEncrypted)) } cfg.AllowEncrypted, err = config.ParseBool(allowEnc) diff --git a/internal/config/compress/legacy.go b/internal/config/compress/legacy.go index 13be9069a..034df304f 100644 --- a/internal/config/compress/legacy.go +++ b/internal/config/compress/legacy.go @@ -30,6 +30,7 @@ const ( // These envs were wrong but we supported them for a long time // so keep them here to support existing deployments. + EnvCompressEnableLegacy = "MINIO_COMPRESS_ENABLE" EnvCompressAllowEncryptionLegacy = "MINIO_COMPRESS_ALLOW_ENCRYPTION" EnvCompressExtensionsLegacy = "MINIO_COMPRESS_EXTENSIONS" EnvCompressMimeTypesLegacy2 = "MINIO_COMPRESS_MIME_TYPES"