mirror of
https://github.com/versity/versitygw.git
synced 2026-01-05 19:34:53 +00:00
fix: Fixes #487, added response headers for HeadBucket action
This commit is contained in:
@@ -1844,6 +1844,7 @@ func (c S3ApiController) HeadBucket(ctx *fiber.Ctx) error {
|
||||
bucket := ctx.Params("bucket")
|
||||
acct := ctx.Locals("account").(auth.Account)
|
||||
isRoot := ctx.Locals("isRoot").(bool)
|
||||
region := ctx.Locals("region").(string)
|
||||
parsedAcl := ctx.Locals("parsedAcl").(auth.ACL)
|
||||
|
||||
err := auth.VerifyAccess(ctx.Context(), c.be,
|
||||
@@ -1868,7 +1869,17 @@ func (c S3ApiController) HeadBucket(ctx *fiber.Ctx) error {
|
||||
&s3.HeadBucketInput{
|
||||
Bucket: &bucket,
|
||||
})
|
||||
// TODO: set bucket response headers
|
||||
|
||||
utils.SetResponseHeaders(ctx, []utils.CustomHeader{
|
||||
{
|
||||
Key: "X-Amz-Access-Point-Alias",
|
||||
Value: "false",
|
||||
},
|
||||
{
|
||||
Key: "X-Amz-Bucket-Region",
|
||||
Value: region,
|
||||
},
|
||||
})
|
||||
return SendResponse(ctx, err,
|
||||
&MetaOpts{
|
||||
Logger: c.logger,
|
||||
|
||||
@@ -1285,6 +1285,7 @@ func TestS3ApiController_HeadBucket(t *testing.T) {
|
||||
ctx.Locals("isRoot", true)
|
||||
ctx.Locals("isDebug", false)
|
||||
ctx.Locals("parsedAcl", auth.ACL{})
|
||||
ctx.Locals("region", "us-east-1")
|
||||
return ctx.Next()
|
||||
})
|
||||
|
||||
@@ -1308,6 +1309,7 @@ func TestS3ApiController_HeadBucket(t *testing.T) {
|
||||
ctx.Locals("isRoot", true)
|
||||
ctx.Locals("isDebug", false)
|
||||
ctx.Locals("parsedAcl", auth.ACL{})
|
||||
ctx.Locals("region", "us-east-1")
|
||||
return ctx.Next()
|
||||
})
|
||||
|
||||
|
||||
@@ -1809,13 +1809,21 @@ func HeadBucket_success(s *S3Conf) error {
|
||||
testName := "HeadBucket_success"
|
||||
return actionHandler(s, testName, func(s3client *s3.Client, bucket string) error {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), shortTimeout)
|
||||
_, err := s3client.HeadBucket(ctx, &s3.HeadBucketInput{
|
||||
resp, err := s3client.HeadBucket(ctx, &s3.HeadBucketInput{
|
||||
Bucket: &bucket,
|
||||
})
|
||||
cancel()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if resp.AccessPointAlias != nil && *resp.AccessPointAlias {
|
||||
return fmt.Errorf("expected bucket access point alias to be false")
|
||||
}
|
||||
if *resp.BucketRegion != s.awsRegion {
|
||||
return fmt.Errorf("expected bucket region to be %v, instead got %v", s.awsRegion, *resp.BucketRegion)
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user