Swift3 Middleware for OpenStack Swift, allowing access to OpenStack swift via the Amazon S3 API.
Go to file
Kota Tsuyuzaki 208eec3720 Draft: Acl class design for supporting S3 ACL
This comes from previous work to achieve real S3's ACL model.
Previous discussion is here. (https://review.openstack.org/#/c/122029/)

This supports ACL class and its related model (e.g. Grant, Grantee)
with a feature to translate between a python class and an ElemntTree for
XML used for S3's request and response.

The model we need to disscuss is as follows:

AccessControlPolicy:
    Owner:
    AccessControlList:
        Grant[n]:
            (Grantee, Permission)

It comes from official S3 model overview. Please see official
documentation here (http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html)
in detail.

TODO:
A stuff to translate between a python class and JSON format used for
implementations to achieve ACL handling at backend swift.

Change-Id: Ic6765f2a530caba6e22d5805323e31eb3d3013e7
2014-12-08 11:39:34 +09:00
doc etree: add support for xml validation 2014-07-08 21:54:18 +09:00
etc Merge "multi_delete: limit the maximum number of objects" 2014-08-13 04:16:04 +00:00
swift3 Draft: Acl class design for supporting S3 ACL 2014-12-08 11:39:34 +09:00
.gitignore Improve coverage report 2014-04-16 10:55:54 +09:00
.gitreview Add .gitreview file. 2014-03-22 15:42:32 +09:00
.unittests Add unittests from swift repository. 2012-05-21 13:21:24 +02:00
AUTHORS WIP - acls and test cases 2012-10-15 14:59:43 -07:00
CHANGELOG Addding a few base files to the project. 2012-05-21 13:05:34 +02:00
LICENSE Addding a few base files to the project. 2012-05-21 13:05:34 +02:00
README.md Update documentation to use keystoneauth name 2014-10-17 14:50:25 -07:00
requirements.txt Use lxml for processing XML 2014-06-05 17:10:22 +09:00
setup.cfg Use openstack.nose_plugin for tests 2014-04-18 15:50:12 +09:00
setup.py Add setup.cfg and pbr support. 2014-04-09 11:30:40 +02:00
test-requirements.txt multi_upload: preliminary support for S3 multi part upload 2014-08-11 09:10:04 +00:00
tox.ini Merge "tox: update swift version to 2.1.0" 2014-09-03 12:47:15 +00:00

Swift3

Swift3 Middleware for OpenStack Swift, allowing access to OpenStack swift via the Amazon S3 API.

Install

  1. Install Swift3 with sudo python setup.py install or sudo python setup.py develop or via whatever packaging system you may be using.

  2. Alter your proxy-server.conf pipeline to have swift3:

If you use tempauth:

Was::

    [pipeline:main]
    pipeline = catch_errors cache tempauth proxy-server

Change To::

    [pipeline:main]
    pipeline = catch_errors cache swift3 tempauth proxy-server

If you use keystone:

Was::

    [pipeline:main]
    pipeline = catch_errors cache authtoken keystone proxy-server

Change To::

    [pipeline:main]
    pipeline = catch_errors cache swift3 s3token authtoken keystoneauth proxy-server

Note that swift3 explicitly checks that keystoneauth is in the pipeline. You must use this name in the pipeline statement and in [filter:keystoneauth] section header.

  1. Add to your proxy-server.conf the section for the Swift3 WSGI filter::

    [filter:swift3] use = egg:swift3#swift3

You also need to add the following if you use keystone (adjust port, host, protocol configurations for your environment):

[filter:s3token]
paste.filter_factory = keystoneclient.middleware.s3_token:filter_factory
auth_port = 35357
auth_host = 127.0.0.1
auth_protocol = http