aboutsummaryrefslogtreecommitdiff
path: root/weed/s3api/s3api_object_handlers_multipart.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/s3api/s3api_object_handlers_multipart.go')
-rw-r--r--weed/s3api/s3api_object_handlers_multipart.go8
1 files changed, 8 insertions, 0 deletions
diff --git a/weed/s3api/s3api_object_handlers_multipart.go b/weed/s3api/s3api_object_handlers_multipart.go
index cee8f6785..3d83b585b 100644
--- a/weed/s3api/s3api_object_handlers_multipart.go
+++ b/weed/s3api/s3api_object_handlers_multipart.go
@@ -114,6 +114,14 @@ func (s3a *S3ApiServer) CompleteMultipartUploadHandler(w http.ResponseWriter, r
return
}
+ // Check conditional headers before completing multipart upload
+ // This implements AWS S3 behavior where conditional headers apply to CompleteMultipartUpload
+ if errCode := s3a.checkConditionalHeaders(r, bucket, object); errCode != s3err.ErrNone {
+ glog.V(3).Infof("CompleteMultipartUploadHandler: Conditional header check failed for %s/%s", bucket, object)
+ s3err.WriteErrorResponse(w, r, errCode)
+ return
+ }
+
response, errCode := s3a.completeMultipartUpload(r, &s3.CompleteMultipartUploadInput{
Bucket: aws.String(bucket),
Key: objectKey(aws.String(object)),