-
Notifications
You must be signed in to change notification settings - Fork 826
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
object-store: remove S3ConditionalPut::ETagPutIfNotExists #6802
object-store: remove S3ConditionalPut::ETagPutIfNotExists #6802
Conversation
As of today [0] S3 now supports the If-Match for in-place conditional writes. This commit adjusts the existing support for S3ConditionalPut::Etag mode for compatibility with real S3's particular semantics, which vary slightly from MinIO and R2. Specifically: * Real S3 can occasionally return 409 Conflict when concurrent If-Match requests are in progress. These requests need to be retried. * Real S3 returns 404 Not Found instead of 412 Precondition Failed when issuing an If-Match request against an object that does not exist. Fix apache#6799. [0]: https://aws.amazon.com/about-aws/whats-new/2024/11/amazon-s3-functionality-conditional-writes/
977cd2f
to
6a69ad1
Compare
Now that real S3 supports `If-Match`, we no longer need this special conditional put mode for real S3.
6a69ad1
to
ac2b05c
Compare
Quick update on the LocalStack side: I've got the green light to release this feature during this week, and will work on it either tonight or tomorrow. The feature will be available in the |
That's amazing, thank you for working on this! |
Quite the opposite—thanks for turning the implementation around so quickly! |
As written in #6799 (comment), the feature is now available in the I've given a try to this branch with the flag enabled and it worked for me locally, might be worth trying it out. Thanks a lot for the tests, they're always great to run locally! 🙏 |
Yes, just bumped to the Give me a holler when 4.0.3 is released—I'll try to keep an eye on it myself—so that I can update this PR to use it. And then we should be ready to merge. |
Hello @benesch! The Can't wait to see this feature merged! 🚀 thanks a lot for the collaboration on this. Have a great week-end 😄 |
Now that real S3 supports
If-Match
, we no longer need this special conditional put mode for real S3.Considerations:
If-Match
(which doesn't yet exist). @bentsku mentioned he'd try to add support to localstack later this week. See Support S3 Put IfMatch #6799 (comment).Which issue does this PR close?
Cleanup related to #6799.
Are there any user-facing changes?
The removal of
S3ConditionalPut::ETagPutIfNotExists
would be user facing, but this variant has not yet made it into a release.cc @tustvold