From 7120206a93eb3943a7d30988900d4996febce3ab Mon Sep 17 00:00:00 2001 From: Filip Petkovski Date: Tue, 14 Jan 2025 17:48:39 +0100 Subject: [PATCH 1/2] Add constructor for a client from a BucketConfig object It's handy to be able to create a bucket from an existing BucketConfig object in addition to using raw yaml to do it. Signed-off-by: Filip Petkovski --- client/factory.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/client/factory.go b/client/factory.go index 089fd843..f0a2287e 100644 --- a/client/factory.go +++ b/client/factory.go @@ -42,6 +42,11 @@ func NewBucket(logger log.Logger, confContentYaml []byte, component string, wrap return nil, errors.Wrap(err, "parsing config YAML file") } + return NewBucketFromConfig(logger, bucketConf, component, wrapRoundtripper) +} + +// NewBucketFromConfig creates an objstore.Bucket from an existing BucketConfig object. +func NewBucketFromConfig(logger log.Logger, bucketConf *BucketConfig, component string, wrapRoundtripper func(http.RoundTripper) http.RoundTripper) (objstore.Bucket, error) { config, err := yaml.Marshal(bucketConf.Config) if err != nil { return nil, errors.Wrap(err, "marshal content of bucket configuration") From 3f90dacb53a09fb33b9c0054ab421de830e0adab Mon Sep 17 00:00:00 2001 From: Filip Petkovski Date: Tue, 14 Jan 2025 17:54:07 +0100 Subject: [PATCH 2/2] Add CHANGELOG entry Signed-off-by: Filip Petkovski --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 679d6705..b8be4db2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -59,6 +59,7 @@ We use *breaking :warning:* to mark changes that are not backward compatible (re - [#150](https://github.com/thanos-io/objstore/pull/150) Add support for roundtripper wrapper. - [#63](https://github.com/thanos-io/objstore/pull/63) Implement a `IterWithAttributes` method on the bucket client. - [#155](https://github.com/thanos-io/objstore/pull/155) Add a `Provider` method on `objstore.Client`. +- [#163](https://github.com/thanos-io/objstore/pull/145) Add a `NewBucketFromConfig` constructor method for creating a client from an existing `BucketConfig` object. ### Changed