Skip to content

Support for appends in S3 Express #632

Description

@ashtuchkin

Is your feature request related to a problem or challenge? Please describe what you are trying to do.

About a year ago, AWS added ability to append data to objects in S3 Express / Directory Buckets: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-append.html

Append is atomic, but has the limit that up to 10000 'parts' can be appended before the file needs to be rewritten. Low-level, appending is implemented by using x-amz-write-offset-bytes header, which users need to set to the current size of the file.

We've built pretty efficient system using this functionality with official AWS S3 client, but it would be nice if we could do this using object_store somehow. Is it possible?

Describe the solution you'd like

I can see two options:

  1. Ideally a top-level "append" operation could be re-introduced (I found it was removed in 0.8). The reasoning for this was that only in-memory and filesystem supported it at the time. Currently there's a bunch of object stores that support it: S3 (directory buckets), Azure, Ceph, Tencent, Alibaba, etc.
  2. Use Attributes / Extensions to provide the header directly. Looking at the code I haven't found a good way to do that - would be grateful if you could point me to it!

Describe alternatives you've considered

Using a different client is the only thing that comes to mind.

Additional context

--

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions