Merge pull request #1415 from versity/sis/listbuckets-region

fix: adds bucket region in ListBuckets result
This commit is contained in:
Ben McClelland
2025-07-25 14:42:23 -07:00
committed by GitHub
6 changed files with 43 additions and 22 deletions
+2
View File
@@ -51,6 +51,8 @@ const (
minPartNumber = 1
maxPartNumber = 10000
defaultMaxBuckets = int32(10000)
defaultRegion = "us-east-1"
)
var (
+14 -3
View File
@@ -30,6 +30,10 @@ func (c S3ApiController) ListBuckets(ctx *fiber.Ctx) (*Response, error) {
prefix := ctx.Query("prefix")
maxBucketsStr := ctx.Query("max-buckets")
acct := utils.ContextKeyAccount.Get(ctx).(auth.Account)
region, ok := utils.ContextKeyRegion.Get(ctx).(string)
if !ok {
region = defaultRegion
}
maxBuckets := defaultMaxBuckets
if maxBucketsStr != "" {
@@ -51,8 +55,15 @@ func (c S3ApiController) ListBuckets(ctx *fiber.Ctx) (*Response, error) {
ContinuationToken: cToken,
Prefix: prefix,
})
if err != nil {
return &Response{}, err
}
for i := range res.Buckets.Bucket {
res.Buckets.Bucket[i].BucketRegion = region
}
return &Response{
Data: res,
MetaOpts: &MetaOptions{},
}, err
Data: res,
}, nil
}
+4 -8
View File
@@ -58,15 +58,12 @@ func TestS3ApiController_ListBuckets(t *testing.T) {
name: "backend returns error",
input: testInput{
locals: defaultLocals,
beRes: validRes,
beErr: s3err.GetAPIError(s3err.ErrNoSuchBucket),
beRes: s3response.ListAllMyBucketsResult{},
},
output: testOutput{
response: &Response{
Data: validRes,
MetaOpts: &MetaOptions{},
},
err: s3err.GetAPIError(s3err.ErrNoSuchBucket),
response: &Response{},
err: s3err.GetAPIError(s3err.ErrNoSuchBucket),
},
},
{
@@ -80,8 +77,7 @@ func TestS3ApiController_ListBuckets(t *testing.T) {
},
output: testOutput{
response: &Response{
Data: validRes,
MetaOpts: &MetaOptions{},
Data: validRes,
},
},
},