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.
This commit is contained in:
WGH 2025-09-06 20:37:10 +03:00 committed by GitHub
parent 558fc1c09c
commit da532ab93d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 4 deletions

View File

@ -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)

View File

@ -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"