aboutsummaryrefslogtreecommitdiff
path: root/weed/s3api/s3api_object_handlers_put.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/s3api/s3api_object_handlers_put.go')
-rw-r--r--weed/s3api/s3api_object_handlers_put.go22
1 files changed, 9 insertions, 13 deletions
diff --git a/weed/s3api/s3api_object_handlers_put.go b/weed/s3api/s3api_object_handlers_put.go
index c601fbe36..a52fd90b4 100644
--- a/weed/s3api/s3api_object_handlers_put.go
+++ b/weed/s3api/s3api_object_handlers_put.go
@@ -555,26 +555,22 @@ func (s3a *S3ApiServer) validateObjectLockHeaders(r *http.Request, versioningEna
func mapValidationErrorToS3Error(err error) s3err.ErrorCode {
switch {
case errors.Is(err, ErrObjectLockVersioningRequired):
- // For object lock operations on non-versioned buckets, return 409 Conflict
+ // For object lock operations on non-versioned buckets, return InvalidBucketState
// This matches AWS S3 behavior and s3-tests expectations
- return s3err.ErrBucketNotEmpty // This maps to 409 Conflict
+ return s3err.ErrInvalidBucketState
case errors.Is(err, ErrInvalidObjectLockMode):
return s3err.ErrInvalidRequest
case errors.Is(err, ErrInvalidLegalHoldStatus):
// 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),
- errors.Is(err, ErrObjectLockModeRequiresDate),
- errors.Is(err, ErrRetentionDateRequiresMode):
- return s3err.ErrInvalidRequest
- case errors.Is(err, ErrGovernanceBypassVersioningRequired):
- return s3err.ErrInvalidRequest
- case errors.Is(err, ErrInvalidObjectLockDuration):
- return s3err.ErrInvalidRequest
- case errors.Is(err, ErrObjectLockDurationExceeded):
- return s3err.ErrInvalidRequest
+ return s3err.ErrMalformedXML
+ case errors.Is(err, ErrInvalidRetentionPeriod):
+ // For invalid retention periods (days/years), return MalformedXML
+ return s3err.ErrMalformedXML
+ case errors.Is(err, ErrInvalidRetentionMode):
+ // For invalid retention modes, return MalformedXML
+ return s3err.ErrMalformedXML
default:
return s3err.ErrInvalidRequest
}