s3proxy 0,0,0,0 travis-ci

Access other storage backends via the S3 API

S3Proxy

S3Proxy allows applications using the S3 API to access other storage backends, e.g., local file system, Backblaze B2, Google Cloud Storage, Microsoft Azure, OpenStack Swift.

Usage with Docker

Docker Hub hosts a Docker image and has instructions on how to run it.

Usage without Docker

Users can download releases from GitHub. Developers can build the project by running mvn package which produces a binary at target/s3proxy. S3Proxy requires Java 7 to run.

Configure S3Proxy via a properties file. An example using the local file system as the storage backend with anonymous access:

s3proxy.authorization=none
s3proxy.endpoint=http://127.0.0.1:8080
jclouds.provider=filesystem
jclouds.filesystem.basedir=/tmp/s3proxy

First create the filesystem basedir:

mkdir /tmp/s3proxy

Next run S3Proxy. Linux and Mac OS X users can run the executable jar:

chmod +x s3proxy
s3proxy --properties s3proxy.conf

Windows users must explicitly invoke java:

java -jar s3proxy --properties s3proxy.conf

Finally test by creating a bucket then listing all the buckets:

$ curl --request PUT http://localhost:8080/testbucket

$ curl http://localhost:8080/
<?xml version="1.0" ?><ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a</ID><DisplayName>[email protected]</DisplayName></Owner><Buckets><Bucket><Name>testbucket</Name><CreationDate>2015-08-05T22:16:24.000Z</CreationDate></Bucket></Buckets></ListAllMyBucketsResult>

Supported storage backends

  • atmos
  • aws-s3
  • azureblob
  • b2
  • filesystem (on-disk storage)
  • google-cloud-storage
  • openstack-swift
  • rackspace-cloudfiles-uk and rackspace-cloudfiles-us
  • s3
  • transient (in-memory storage)

See the wiki for examples of configurations.

Limitations

S3Proxy has broad compatibility with the S3 API, however, it does not support:

  • ACLs other than private and public-read
  • BitTorrent hosting
  • bucket logging
  • cross-origin resource sharing, see #142
  • POST upload policies, see #73
  • object server-side encryption
  • object versioning, see #74
  • requester pays buckets

S3Proxy emulates the following operations:

  • copy multi-part objects, see #76

The wiki collects compatability notes for specific storage backends.

References

  • Apache jclouds provides storage backend support for S3Proxy
  • Ceph s3-tests help maintain and improve compatibility with the S3 API
  • fake-s3, gofakes3, S3 ninja, and s3rver provide functionality similar to S3Proxy when using the filesystem backend
  • GlacierProxy and SwiftProxy provide similar functionality for the Amazon Glacier and OpenStack Swift APIs
  • sbt-s3 run S3Proxy via the Scala Build Tool
  • swift3 provides an S3 middleware for OpenStack Swift

License

Copyright © 2014-2016 Andrew Gaul

Licensed under the Apache License, Version 2.0

Related Repositories

s3proxy

s3proxy

Access other storage backends via the S3 API ...

docker-nginx-s3proxy

docker-nginx-s3proxy

nginx based proxy for s3 - docker ...

azure-s3proxy-cf-demo

azure-s3proxy-cf-demo

:cloud: Sample app to show S3Proxy enabling the same code base to get content from AWS S3 and Azure Storage ...

s3proxy

s3proxy

Simple HTTP server which proxies requests to Amazon S3 ...

s3proxy

s3proxy

Simple proxy to access files on S3 ...


Top Contributors

andrewgaul kahing timuralp ritazh dleute flandr zvikagart

Releases

-   s3proxy-1.5.0-prerel zip tar
-   s3proxy-1.4.0 zip tar
-   s3proxy-1.3.0 zip tar
-   s3proxy-1.2.0 zip tar
-   s3proxy-1.1.0 zip tar
-   s3proxy-1.0.0 zip tar