aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2025-07-18 17:08:59 -0700
committerchrislu <chris.lu@gmail.com>2025-07-18 17:08:59 -0700
commit40d9f4fa9c7e0e75c8737fc782feedc15dfbe14b (patch)
tree5b8a630845ae04a42b1b56832446677db3526472
parent8cc99ca121daea61503d9098bd9c4120c7af259b (diff)
downloadseaweedfs-40d9f4fa9c7e0e75c8737fc782feedc15dfbe14b.tar.xz
seaweedfs-40d9f4fa9c7e0e75c8737fc782feedc15dfbe14b.zip
add error mapping
-rw-r--r--weed/s3api/s3api_object_handlers_put.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/weed/s3api/s3api_object_handlers_put.go b/weed/s3api/s3api_object_handlers_put.go
index 79214d5ed..50067f85e 100644
--- a/weed/s3api/s3api_object_handlers_put.go
+++ b/weed/s3api/s3api_object_handlers_put.go
@@ -608,6 +608,22 @@ func mapValidationErrorToS3Error(err error) s3err.ErrorCode {
// For invalid retention mode, return InvalidRequest
// This matches the test expectations
return s3err.ErrInvalidRequest
+ case errors.Is(err, ErrComplianceModeActive):
+ // For compliance mode retention violations, return AccessDenied
+ // This matches the test expectations
+ return s3err.ErrAccessDenied
+ case errors.Is(err, ErrGovernanceModeActive):
+ // For governance mode retention violations, return AccessDenied
+ // This matches the test expectations
+ return s3err.ErrAccessDenied
+ case errors.Is(err, ErrObjectUnderLegalHold):
+ // For legal hold violations, return AccessDenied
+ // This matches the test expectations
+ return s3err.ErrAccessDenied
+ case errors.Is(err, ErrGovernanceBypassNotPermitted):
+ // For governance bypass permission violations, return AccessDenied
+ // This matches the test expectations
+ return s3err.ErrAccessDenied
// Validation error constants
case errors.Is(err, ErrObjectLockConfigurationMissingEnabled):
return s3err.ErrMalformedXML