|
|
|
@ -139,8 +139,14 @@ func (s3a *S3ApiServer) PutObjectHandler(w http.ResponseWriter, r *http.Request) |
|
|
|
if !s3a.handleAutoCreateBucket(w, r, bucket, "PutObjectHandler") { |
|
|
|
return |
|
|
|
} |
|
|
|
// After creating the bucket, versioning state is empty (not configured)
|
|
|
|
versioningState = "" |
|
|
|
// Re-fetch versioning state to handle race conditions where
|
|
|
|
// another process might have created the bucket with versioning enabled.
|
|
|
|
versioningState, err = s3a.getVersioningState(bucket) |
|
|
|
if err != nil { |
|
|
|
glog.Errorf("Error re-checking versioning status for bucket %s after auto-creation: %v", bucket, err) |
|
|
|
s3err.WriteErrorResponse(w, r, s3err.ErrInternalError) |
|
|
|
return |
|
|
|
} |
|
|
|
} else { |
|
|
|
glog.Errorf("Error checking versioning status for bucket %s: %v", bucket, err) |
|
|
|
s3err.WriteErrorResponse(w, r, s3err.ErrInternalError) |
|
|
|
|