s3: option to disable bucket auto-creation on upload (#10759)

* s3: add option to disable bucket auto-creation on upload

* command: expose -autoCreateBucket in s3, filer, server, and mini

* s3: apply the bucket auto-create policy to directory marker uploads

* s3: validate the bucket name before the auto-create disabled check

* s3: cover the disabled auto-create gate at all three upload entry points
This commit is contained in:
Chris Lu authored and GitHub committed 2026-08-14 10:58:45 -07:00
1 parent 02b3ec6e90
commit f66d6ffc4a
8 files changed
+93 -1

No files matched your search

+11
View File
@@ -131,6 +131,17 @@ func (s3a *S3ApiServer) PutObjectHandler(w http.ResponseWriter, r *http.Request)
objectContentType := r.Header.Get("Content-Type")
if strings.HasSuffix(object, "/") && r.ContentLength <= 1024 {
// The filer mkdir below would implicitly create a missing bucket, so gate it
// on the same auto-create policy as regular uploads.
if err := s3a.checkBucket(r, bucket); err == s3err.ErrNoSuchBucket {
if !s3a.handleAutoCreateBucket(w, r, bucket, "PutObjectHandler") {
return
}
} else if err != s3err.ErrNone {
s3err.WriteErrorResponse(w, r, err)
return
}
// Split the object into directory path and name
objectWithoutSlash := strings.TrimSuffix(object, "/")
dirName := path.Dir(objectWithoutSlash)