Details
-
Improvement
-
Resolution: Fixed
-
Major
-
18.8.0
-
None
Description
The S3 blob store implements BlobWriteMode.CREATE_NEW with a conditional write (If-None-Match: *) on PutObject, CompleteMultipartUpload and CopyObject. Many S3-compatible services (Garage, OVHcloud Object Storage, older Ceph RGW) don't implement conditional writes and answer 501 Not Implemented or ignore the condition, which makes the store unusable with them (see the S3 Blob Store documentation: only MinIO/SILO are tested).
Proposal: add a store.s3.conditionalWrites property (default true). When false, the store checks the existence of the object with a HEAD request before writing it (not atomic, but acceptable for XWiki's uses of CREATE_NEW). When a service rejects the condition with 501, the error should name the property.
Attachments
Issue Links
- is related to
-
XCOMMONS-3826 The filesystem blob store doesn't move blobs atomically with BlobWriteMode.CREATE_NEW
-
- Open
-
-
XWIKI-22845 Introduce a S3 storage support for attachment content, history and deleted attachments and documents
-
- Closed
-
-
XCOMMONS-3825 Detect automatically which conditional requests the S3 service supports
-
- Open
-