diff --git a/internal/config/blob.go b/internal/config/blob.go index a1ce520f81a..6b936235836 100644 --- a/internal/config/blob.go +++ b/internal/config/blob.go @@ -58,6 +58,7 @@ type S3Config struct { AccessKey string `json:"access_key" yaml:"access_key"` SecretAccessKey string `json:"secret_access_key" yaml:"secret_access_key"` Token string `json:"token" yaml:"token"` + UseLegacyList bool `json:"use_legacy_list" yaml:"use_legacy_list"` } func (b *Blob) Bind() *Blob { diff --git a/internal/db/storage/blob/s3/option.go b/internal/db/storage/blob/s3/option.go index d90fd68a918..0de67315b46 100644 --- a/internal/db/storage/blob/s3/option.go +++ b/internal/db/storage/blob/s3/option.go @@ -51,3 +51,9 @@ func WithToken(tk string) Option { s.token = tk } } + +func WithUseLegacyList(flg bool) Option { + return func(s *sess) { + s.useLegacyList = flg + } +} diff --git a/internal/db/storage/blob/s3/s3.go b/internal/db/storage/blob/s3/s3.go index 336c43dd32b..6c0945719fc 100644 --- a/internal/db/storage/blob/s3/s3.go +++ b/internal/db/storage/blob/s3/s3.go @@ -31,6 +31,7 @@ type sess struct { accessKey string secretAccessKey string token string + useLegacyList bool } type Session interface { @@ -68,7 +69,7 @@ func (s *sess) URLOpener() (*URLOpener, error) { return &URLOpener{ ConfigProvider: session, Options: s3blob.Options{ - UseLegacyList: false, + UseLegacyList: s.useLegacyList, }, }, nil }