aboutsummaryrefslogtreecommitdiff
path: root/weed/s3api/s3api_object_handlers_put.go
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2025-07-18 15:33:44 -0700
committerchrislu <chris.lu@gmail.com>2025-07-18 15:33:44 -0700
commit4b92f03b654b97ee7317bd7fc5b195b65a735550 (patch)
treece9298438a98f01408f4ec9412977c8d3edebf0b /weed/s3api/s3api_object_handlers_put.go
parent1e7a3c09d4a07883964cac7ae556a5f533b52afc (diff)
downloadseaweedfs-4b92f03b654b97ee7317bd7fc5b195b65a735550.tar.xz
seaweedfs-4b92f03b654b97ee7317bd7fc5b195b65a735550.zip
address test errors
Diffstat (limited to 'weed/s3api/s3api_object_handlers_put.go')
-rw-r--r--weed/s3api/s3api_object_handlers_put.go7
1 files changed, 5 insertions, 2 deletions
diff --git a/weed/s3api/s3api_object_handlers_put.go b/weed/s3api/s3api_object_handlers_put.go
index 50d308566..c601fbe36 100644
--- a/weed/s3api/s3api_object_handlers_put.go
+++ b/weed/s3api/s3api_object_handlers_put.go
@@ -555,11 +555,14 @@ func (s3a *S3ApiServer) validateObjectLockHeaders(r *http.Request, versioningEna
func mapValidationErrorToS3Error(err error) s3err.ErrorCode {
switch {
case errors.Is(err, ErrObjectLockVersioningRequired):
- return s3err.ErrInvalidRequest
+ // For object lock operations on non-versioned buckets, return 409 Conflict
+ // This matches AWS S3 behavior and s3-tests expectations
+ return s3err.ErrBucketNotEmpty // This maps to 409 Conflict
case errors.Is(err, ErrInvalidObjectLockMode):
return s3err.ErrInvalidRequest
case errors.Is(err, ErrInvalidLegalHoldStatus):
- return s3err.ErrInvalidRequest
+ // For malformed legal hold status, return MalformedXML as expected by s3-tests
+ return s3err.ErrMalformedXML
case errors.Is(err, ErrInvalidRetentionDateFormat):
return s3err.ErrMalformedDate
case errors.Is(err, ErrRetentionDateMustBeFuture),