mirror of
https://github.com/versity/versitygw.git
synced 2026-09-22 16:04:15 +00:00
Merge pull request #2380 from versity/sis/posix-create-exsiting-bucket-err
fix: return `BucketAlreadyExists` for existing dirs without acl meta attr
This commit is contained in:
@@ -669,6 +669,12 @@ func (p *Posix) CreateBucket(ctx context.Context, input *s3.CreateBucketInput, a
|
||||
err = os.Mkdir(bucket, p.newDirPerm)
|
||||
if err != nil && os.IsExist(err) {
|
||||
aclJSON, err := p.meta.RetrieveAttribute(nil, bucket, "", aclkey)
|
||||
if errors.Is(err, meta.ErrNoSuchKey) {
|
||||
// The directory already exists but has no gateway-managed acl
|
||||
// attribute, e.g. a preexisting directory on a dataset the
|
||||
// gateway was pointed at rather than one created via CreateBucket
|
||||
return s3err.GetBucketErr(s3err.ErrBucketAlreadyExists, bucket)
|
||||
}
|
||||
if err != nil {
|
||||
return fmt.Errorf("get bucket acl: %w", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user