diff options
Diffstat (limited to 'weed/s3api/s3api_bucket_handlers.go')
| -rw-r--r-- | weed/s3api/s3api_bucket_handlers.go | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/weed/s3api/s3api_bucket_handlers.go b/weed/s3api/s3api_bucket_handlers.go index 591aaafb3..bc8ef574b 100644 --- a/weed/s3api/s3api_bucket_handlers.go +++ b/weed/s3api/s3api_bucket_handlers.go @@ -714,11 +714,22 @@ func (s3a *S3ApiServer) GetBucketVersioningHandler(w http.ResponseWriter, r *htt return } - s3err.WriteAwsXMLResponse(w, r, http.StatusOK, &s3.PutBucketVersioningInput{ - VersioningConfiguration: &s3.VersioningConfiguration{ - Status: aws.String(versioningStatus), - }, - }) + // AWS S3 behavior: If versioning was never configured, don't return Status field + var response *s3.PutBucketVersioningInput + if versioningStatus == "" { + // No versioning configuration - return empty response (no Status field) + response = &s3.PutBucketVersioningInput{ + VersioningConfiguration: &s3.VersioningConfiguration{}, + } + } else { + // Versioning was explicitly configured - return the status + response = &s3.PutBucketVersioningInput{ + VersioningConfiguration: &s3.VersioningConfiguration{ + Status: aws.String(versioningStatus), + }, + } + } + s3err.WriteAwsXMLResponse(w, r, http.StatusOK, response) } // PutBucketVersioningHandler Put bucket Versioning |
