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]

Reply via email to