Uploaded image for project: 'XWiki Commons'
  1. XWiki Commons
  2. XCOMMONS-3823

Allow using the S3 blob store with services that don't support conditional writes

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Fixed
    • Major
    • 18.10.0-rc-1
    • 18.8.0
    • Store
    • None
    • Unit, Integration
    • Unknown

    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

          Activity

            People

              ciaens Clément Christiaens
              ciaens Clément Christiaens
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: