Skip to content

S3 Express support #231

@lucianpls

Description

@lucianpls

S3 Express is a new-ish s3 type of bucket which has better latency than the normal S3 buckets. As far as I can tell, there are some limitations and differences in REST API that make it incompatible with s3backer.

I was able to make it work only in readOnly mode, with a volume copied from a normal bucket, using this s3backer command:

s3backer --accessEC2IAM=$ROLE --readOnly --baseURL=https://s3express-usw2-az1.us-west-2.amazonaws.com/ --vhost --region=us-west-2 $EXPRESS_BUCKET /s3backer/

When trying to create a new s3backer volume or even mount read-write, using the same parameters, it doesn't seem to be able to write anything, despite the instance role having full s3 and s3express access, with the PUT requests failing with a 501 Not Implemented error. From the --debug-http output:

...
> PUT /s3btest/s3backer-mounted HTTP/1.1
Host: s3xbucket--usw2-az1--x-s3.s3express-usw2-az1.us-west-2.amazonaws.com
User-Agent: s3backer/2.1.3/2.1.3-5-gd3d24a8
Accept: */*
Content-Type: text/plain
Content-MD5: nk7Dv0/ECUDwR/Cwri4DIw==
x-amz-meta-s3backer-mount-token: 3d880e52
x-amz-acl: private
...
Content-Length: 60

* We are completely uploaded and fine
< HTTP/1.1 501 Not Implemented
< content-type: application/xml
< server: AmazonS3
...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions