diff options
| author | chrislu <chris.lu@gmail.com> | 2025-07-18 17:08:59 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2025-07-18 17:08:59 -0700 |
| commit | 40d9f4fa9c7e0e75c8737fc782feedc15dfbe14b (patch) | |
| tree | 5b8a630845ae04a42b1b56832446677db3526472 | |
| parent | 8cc99ca121daea61503d9098bd9c4120c7af259b (diff) | |
| download | seaweedfs-40d9f4fa9c7e0e75c8737fc782feedc15dfbe14b.tar.xz seaweedfs-40d9f4fa9c7e0e75c8737fc782feedc15dfbe14b.zip | |
add error mapping
| -rw-r--r-- | weed/s3api/s3api_object_handlers_put.go | 16 |
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 |
