SwiftProxy allows applications using the Swift API to access other object stores, e.g., Amazon S3, EMC Atmos, Google Cloud Storage, Microsoft Azure. It also allows local testing of Swift without the complication of actually setting up Swift. Finally users can extend SwiftProxy with custom middlewares, e.g., caching, encryption, tiering.
Supported object stores:
Users can
download releases
from GitHub. One can also build the project by running mvn package
which produces a binary at
target/swift-proxy-1.0.0-jar-with-dependencies.jar
.
SwiftProxy requires Java 8 to run.
java -jar ./swift-proxy-1.0.0-jar-with-dependencies.jar --properties swiftproxy.conf
Users can configure SwiftProxy via a properties file. An example using Amazon S3 as the backing store:
swiftproxy.endpoint=http://0.0.0.0:8080
jclouds.provider=aws-s3
jclouds.identity=AWS_ACCESSKEY
jclouds.credential=AWS_CREDENTIAL
jclouds.region=us-west-2
SwiftProxy forwards authentication to the underlying object store, with the above configuration you can access Amazon S3 with:
$ swift -A http://127.0.0.1:8080/auth/v1.0 -U AWS_ACCESSKEY -K AWS_CREDENTIAL list
Another example using the local file system as the backing store:
swiftproxy.endpoint=http://127.0.0.1:8080
jclouds.provider=filesystem
jclouds.identity=test:tester
jclouds.credential=testing
jclouds.filesystem.basedir=/tmp/swiftproxy
Users can also set other Java and jclouds properties.
SwiftProxy does not support:
X-Delete-At
or X-Delete-After
)SwiftProxy itself has limited tests and those can be run via mvn test
. We use Swift's functional tests to catch incompatibilities with
the Swift API. SwiftProxy passes a large subset of Swift tests, and
there's a helper script to run them against SwiftProxy
(src/test/resources/run-swift-tests.sh
).
Copyright (C) 2015 Bounce Storage
Licensed under the Apache License, Version 2.0