![]() Link to wiki for more complicated examples. |
||
---|---|---|
s3-tests@8f1b2597f0 | ||
src | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
LICENSE | ||
README.md | ||
pom.xml |
README.md
S3Proxy
S3Proxy allows applications using the S3 API to access other storage backends, e.g., local file system, Google Cloud Storage, Microsoft Azure, OpenStack Swift.
Installation
Users can download releases
from GitHub. One can also build the project by running mvn package
which
produces a binary at target/s3proxy
. S3Proxy requires Java 7 to run.
Usage
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.identity=identity
jclouds.credential=credential
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>CustomersName@amazon.com</DisplayName></Owner><Buckets><Bucket><Name>testbucket</Name><CreationDate>2015-08-05T22:16:24.000Z</CreationDate></Bucket></Buckets></ListAllMyBucketsResult>
See the wiki for examples of other providers.
Supported storage backends
- atmos
- aws-s3
- azureblob
- filesystem (on-disk storage)
- google-cloud-storage
- hpcloud-objectstorage
- openstack-swift
- rackspace-cloudfiles-uk and rackspace-cloudfiles-us
- s3
- swift and swift-keystone (legacy)
- transient (in-memory storage)
Limitations
S3Proxy does not support:
- AWS signature V4, see #24
- POST uploads, see #73
- object metadata with filesystem provider on Mac OS X, see JDK-8030048
- object server-side encryption
- object versioning, see #74
- XML ACLs
S3Proxy emulates the following operations:
References
- Apache jclouds provides object store support for S3Proxy
- Ceph s3-tests help maintain and improve compatibility with the S3 API
- fake-s3 and S3 ninja provide functionality similar to S3Proxy when using the filesystem provider
- Another project named s3proxy provides HTTP access to non-S3-aware applications
- GlacierProxy and SwiftProxy provide similar functionality for the Amazon Glacier and OpenStack Swift APIs
License
Copyright (C) 2014-2015 Andrew Gaul
Licensed under the Apache License, Version 2.0