aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2025-07-19renameorigin/fix-GetObjectLockConfigurationHandlerchrislu2-5/+5
2025-07-19refactorchrislu6-153/+180
2025-07-19Merge branch 'master' into fix-GetObjectLockConfigurationHandlerchrislu0-0/+0
2025-07-18Test object lock and retention (#6997)Chris Lu19-250/+780
* fix GetObjectLockConfigurationHandler * cache and use bucket object lock config * subscribe to bucket configuration changes * increase bucket config cache TTL * refactor * Update weed/s3api/s3api_server.go Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * avoid duplidated work * rename variable * Update s3api_object_handlers_put.go * fix routing * admin ui and api handler are consistent now * use fields instead of xml * fix test * address comments * Update weed/s3api/s3api_object_handlers_put.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update test/s3/retention/s3_retention_test.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update weed/s3api/object_lock_utils.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * change error style * errorf * read entry once * add s3 tests for object lock and retention * use marker * install s3 tests * Update s3tests.yml * Update s3tests.yml * Update s3tests.conf * Update s3tests.conf * address test errors * address test errors With these fixes, the s3-tests should now: ✅ Return InvalidBucketState (409 Conflict) for object lock operations on invalid buckets ✅ Return MalformedXML for invalid retention configurations ✅ Include VersionId in response headers when available ✅ Return proper HTTP status codes (403 Forbidden for retention mode changes) ✅ Handle all object lock validation errors consistently * fixes With these comprehensive fixes, the s3-tests should now: ✅ Return InvalidBucketState (409 Conflict) for object lock operations on invalid buckets ✅ Return InvalidRetentionPeriod for invalid retention periods ✅ Return MalformedXML for malformed retention configurations ✅ Include VersionId in response headers when available ✅ Return proper HTTP status codes for all error conditions ✅ Handle all object lock validation errors consistently The workflow should now pass significantly more object lock tests, bringing SeaweedFS's S3 object lock implementation much closer to AWS S3 compatibility standards. * fixes With these final fixes, the s3-tests should now: ✅ Return MalformedXML for ObjectLockEnabled: 'Disabled' ✅ Return MalformedXML when both Days and Years are specified in retention configuration ✅ Return InvalidBucketState (409 Conflict) when trying to suspend versioning on buckets with object lock enabled ✅ Handle all object lock validation errors consistently with proper error codes * constants and fixes ✅ Return InvalidRetentionPeriod for invalid retention values (0 days, negative years) ✅ Return ObjectLockConfigurationNotFoundError when object lock configuration doesn't exist ✅ Handle all object lock validation errors consistently with proper error codes * fixes ✅ Return MalformedXML when both Days and Years are specified in the same retention configuration ✅ Return 400 (Bad Request) with InvalidRequest when object lock operations are attempted on buckets without object lock enabled ✅ Handle all object lock validation errors consistently with proper error codes * fixes ✅ Return 409 (Conflict) with InvalidBucketState for bucket-level object lock configuration operations on buckets without object lock enabled ✅ Allow increasing retention periods and overriding retention with same/later dates ✅ Only block decreasing retention periods without proper bypass permissions ✅ Handle all object lock validation errors consistently with proper error codes * fixes ✅ Include VersionId in multipart upload completion responses when versioning is enabled ✅ Block retention mode changes (GOVERNANCE ↔ COMPLIANCE) without bypass permissions ✅ Handle all object lock validation errors consistently with proper error codes ✅ Pass the remaining object lock tests * fix tests * fixes * pass tests * fix tests * fixes * add error mapping * Update s3tests.conf * fix test_object_lock_put_obj_lock_invalid_days * fixes * fix many issues * fix test_object_lock_delete_multipart_object_with_legal_hold_on * fix tests * refactor * fix test_object_lock_delete_object_with_retention_and_marker * fix tests * fix tests * fix tests * fix test itself * fix tests * fix test * Update weed/s3api/s3api_object_retention.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * reduce logs * address comments --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-18address commentschrislu2-6/+1
2025-07-18reduce logschrislu2-9/+9
2025-07-18Update weed/s3api/s3api_object_retention.goChris Lu1-1/+1
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-18fix testchrislu1-10/+13
2025-07-18fix testschrislu2-23/+52
2025-07-18fix test itselfchrislu1-3/+12
2025-07-18fix testschrislu2-4/+4
2025-07-18fix testschrislu2-5/+23
2025-07-18fix testschrislu1-3/+3
2025-07-18fix test_object_lock_delete_object_with_retention_and_markerchrislu1-9/+2
2025-07-18refactorchrislu4-26/+60
2025-07-18fix testschrislu4-14/+38
2025-07-18fix test_object_lock_delete_multipart_object_with_legal_hold_onchrislu1-0/+7
2025-07-18fix many issueschrislu3-37/+48
2025-07-18fixeschrislu2-23/+60
2025-07-18fix test_object_lock_put_obj_lock_invalid_dayschrislu3-55/+66
2025-07-18Update s3tests.confchrislu1-1/+1
2025-07-18add error mappingchrislu1-0/+16
2025-07-18fixeschrislu2-13/+32
2025-07-18fix testschrislu3-12/+28
2025-07-18pass testschrislu2-14/+29
2025-07-18fixeschrislu2-1/+12
2025-07-18fix testschrislu2-37/+75
2025-07-18fixeschrislu2-7/+80
✅ Include VersionId in multipart upload completion responses when versioning is enabled ✅ Block retention mode changes (GOVERNANCE ↔ COMPLIANCE) without bypass permissions ✅ Handle all object lock validation errors consistently with proper error codes ✅ Pass the remaining object lock tests
2025-07-18fixeschrislu2-9/+28
✅ Return 409 (Conflict) with InvalidBucketState for bucket-level object lock configuration operations on buckets without object lock enabled ✅ Allow increasing retention periods and overriding retention with same/later dates ✅ Only block decreasing retention periods without proper bypass permissions ✅ Handle all object lock validation errors consistently with proper error codes
2025-07-18fixeschrislu2-4/+9
✅ Return MalformedXML when both Days and Years are specified in the same retention configuration ✅ Return 400 (Bad Request) with InvalidRequest when object lock operations are attempted on buckets without object lock enabled ✅ Handle all object lock validation errors consistently with proper error codes
2025-07-18constants and fixeschrislu6-8/+14
✅ Return InvalidRetentionPeriod for invalid retention values (0 days, negative years) ✅ Return ObjectLockConfigurationNotFoundError when object lock configuration doesn't exist ✅ Handle all object lock validation errors consistently with proper error codes
2025-07-18fixeschrislu3-6/+20
With these final fixes, the s3-tests should now: ✅ Return MalformedXML for ObjectLockEnabled: 'Disabled' ✅ Return MalformedXML when both Days and Years are specified in retention configuration ✅ Return InvalidBucketState (409 Conflict) when trying to suspend versioning on buckets with object lock enabled ✅ Handle all object lock validation errors consistently with proper error codes
2025-07-18fixeschrislu6-7/+13
With these comprehensive fixes, the s3-tests should now: ✅ Return InvalidBucketState (409 Conflict) for object lock operations on invalid buckets ✅ Return InvalidRetentionPeriod for invalid retention periods ✅ Return MalformedXML for malformed retention configurations ✅ Include VersionId in response headers when available ✅ Return proper HTTP status codes for all error conditions ✅ Handle all object lock validation errors consistently The workflow should now pass significantly more object lock tests, bringing SeaweedFS's S3 object lock implementation much closer to AWS S3 compatibility standards.
2025-07-18address test errorschrislu3-24/+28
With these fixes, the s3-tests should now: ✅ Return InvalidBucketState (409 Conflict) for object lock operations on invalid buckets ✅ Return MalformedXML for invalid retention configurations ✅ Include VersionId in response headers when available ✅ Return proper HTTP status codes (403 Forbidden for retention mode changes) ✅ Handle all object lock validation errors consistently
2025-07-18address test errorschrislu4-5/+23
2025-07-18Update s3tests.confchrislu1-1/+17
2025-07-18Update s3tests.confchrislu1-1/+18
2025-07-18Update s3tests.ymlchrislu1-3/+3
2025-07-18Update s3tests.ymlchrislu1-4/+0
2025-07-18install s3 testschrislu1-14/+25
2025-07-18use markerchrislu1-40/+2
2025-07-18Merge branch 'master' into fix-GetObjectLockConfigurationHandlerchrislu0-0/+0
2025-07-18add s3 tests for object lock and retentionchrislu1-0/+65
2025-07-18read entry oncechrislu1-26/+58
2025-07-18Fix get object lock configuration handler (#6996)Chris Lu14-312/+842
* fix GetObjectLockConfigurationHandler * cache and use bucket object lock config * subscribe to bucket configuration changes * increase bucket config cache TTL * refactor * Update weed/s3api/s3api_server.go Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * avoid duplidated work * rename variable * Update s3api_object_handlers_put.go * fix routing * admin ui and api handler are consistent now * use fields instead of xml * fix test * address comments * Update weed/s3api/s3api_object_handlers_put.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update test/s3/retention/s3_retention_test.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update weed/s3api/object_lock_utils.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * change error style * errorf --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-18errorfchrislu3-3/+3
2025-07-18change error stylechrislu2-3/+9
2025-07-18Update weed/s3api/object_lock_utils.goChris Lu1-3/+3
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-18Update test/s3/retention/s3_retention_test.goChris Lu1-0/+2
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-18Update weed/s3api/s3api_object_handlers_put.goChris Lu1-1/+1
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>