peterxcli opened a new pull request, #11366: URL: https://github.com/apache/ozone/pull/11366
## What changes were proposed in this pull request? Support entity ETags in `If-None-Match` for conditional writes: return `412 PreconditionFailed` when the current ETag matches, and allow a different ETag or an absent object. This is a Ceph S3 compatibility extension that improves Ozone's coverage of [ceph/s3-tests](https://github.com/ceph/s3-tests/blob/5522d1c351f75bc00ae0f64f742f3f095f5939d9/s3tests/functional/test_s3.py#L19470); [AWS S3 only accepts `*` for this write header](https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-writes.html). An optional RPC field carries the condition to OM, which evaluates it under the existing lock and pins PUTs to the checked generation through commit. Normal PUT, streaming PUT, multipart completion, and CopyObject destination writes use the same condition. Older OM versions reject the extension before sending a write. ## What is the link to the Apache JIRA https://issues.apache.org/jira/browse/HDDS-16622 ## How was this patch tested? Focused client, OM, and S3 Gateway tests passed (one existing OM test skipped). Conditional-write SDK integration tests passed with normal and streaming writes, including matching ETag rejection, nonmatching overwrite, absent objects, and multipart completion. Checkstyle passed. Generated-by: Codex (GPT-6) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
