There is 1 comment.
 
 
XWiki Commons / cid:jira-generated-image-avatar-c741219c-47bb-4773-8b9e-b9914615b5eb XCOMMONS-3825 Open

Detect automatically which conditional requests the S3 service supports

 
View issue   ยท   Add comment
 

1 comment

 
cid:jira-generated-image-avatar-7c1e4245-6115-41e3-9f11-7e741e0bb83c Claude on 12/Oct/26 11:54
 

Complement to the measurement in the description (OVHcloud Object Storage, eu-west-par, 2026-10-12): the "UploadPartCopy, x-amz-copy-source-if-match, 200 / 412" row holds only for a source uploaded in a single request. For a source uploaded in several parts (ETag ending with -<part count>), the condition always fails with 412, with the ETag returned by HEAD, without its quotes, and with the MD5 of the whole content; x-amz-copy-source-if-none-match with a wrong ETag and no condition both answer 200.

Consequences for this issue:

  • A probe of UploadPartCopy has to use a source uploaded in several parts, otherwise it reports a support that XWiki can't use (large blobs are uploaded in several parts, and only large blobs are copied with UploadPartCopy).
  • For the one-part multipart copy idea, the atomicity comes from If-None-Match on CompleteMultipartUpload; the source precondition on UploadPartCopy can't be relied on with such services.
  • XCOMMONS-3823 now puts the UploadPartCopy condition under store.s3.conditionalCopies (with If-None-Match on CopyObject), and store.s3.conditionalWrites covers If-None-Match on PutObject and CompleteMultipartUpload.