This attempts to import openstack/swift3 package into swift upstream repository, namespace. This is almost simple porting except following items. 1. Rename swift3 namespace to swift.common.middleware.s3api 1.1 Rename also some conflicted class names (e.g. Request/Response) 2. Port unittests to test/unit/s3api dir to be able to run on the gate. 3. Port functests to test/functional/s3api and setup in-process testing 4. Port docs to doc dir, then address the namespace change. 5. Use get_logger() instead of global logger instance 6. Avoid global conf instance Ex. fix various minor issue on those steps (e.g. packages, dependencies, deprecated things) The details and patch references in the work on feature/s3api are listed at https://trello.com/b/ZloaZ23t/s3api (completed board) Note that, because this is just a porting, no new feature is developed since the last swift3 release, and in the future work, Swift upstream may continue to work on remaining items for further improvements and the best compatibility of Amazon S3. Please read the new docs for your deployment and keep track to know what would be changed in the future releases. Change-Id: Ib803ea89cfee9a53c429606149159dd136c036fd Co-Authored-By: Thiago da Silva <thiago@redhat.com> Co-Authored-By: Tim Burke <tim.burke@gmail.com>
7.1 KiB
Middleware
Account Quotas
swift.common.middleware.account_quotas
AWS S3 Api
swift.common.middleware.s3api.s3api
swift.common.middleware.s3api.s3token
swift.common.middleware.s3api.s3request
swift.common.middleware.s3api.s3response
swift.common.middleware.s3api.exception
swift.common.middleware.s3api.etree
swift.common.middleware.s3api.utils
swift.common.middleware.s3api.subresource
swift.common.middleware.s3api.acl_handlers
swift.common.middleware.s3api.acl_utils
swift.common.middleware.s3api.controllers.base
swift.common.middleware.s3api.controllers.service
swift.common.middleware.s3api.controllers.bucket
swift.common.middleware.s3api.controllers.obj
swift.common.middleware.s3api.controllers.acl
swift.common.middleware.s3api.controllers.s3_acl
swift.common.middleware.s3api.controllers.multi_upload
swift.common.middleware.s3api.controllers.multi_delete
swift.common.middleware.s3api.controllers.versioning
swift.common.middleware.s3api.controllers.location
swift.common.middleware.s3api.controllers.logging
Bulk Operations (Delete and Archive Auto Extraction)
swift.common.middleware.bulk
CatchErrors
swift.common.middleware.catch_errors
CNAME Lookup
swift.common.middleware.cname_lookup
Container Quotas
swift.common.middleware.container_quotas
Container Sync Middleware
swift.common.middleware.container_sync
Cross Domain Policies
swift.common.middleware.crossdomain
Discoverability
Swift will by default provide clients with an interface providing
details about the installation. Unless disabled (i.e
expose_info=false
in proxy-server-config
), a GET request to
/info
will return configuration data in JSON format. An
example response:
{"swift": {"version": "1.11.0"}, "staticweb": {}, "tempurl": {}}
This would signify to the client that swift version 1.11.0 is running and that staticweb and tempurl are available in this installation.
There may be administrator-only information available via
/info
. To retrieve it, one must use an HMAC-signed request,
similar to TempURL. The signature may be produced like so:
swift tempurl GET 3600 /info secret 2>/dev/null | sed s/temp_url/swiftinfo/g
Domain Remap
swift.common.middleware.domain_remap
Dynamic Large Objects
DLO support centers around a user specified filter that matches
segments and concatenates them together in object listing order. Please
see the DLO docs for dlo-doc
further details.
Encryption
Encryption middleware should be deployed in conjunction with the
keymaster
middleware.
swift.common.middleware.crypto
swift.common.middleware.crypto.encrypter
swift.common.middleware.crypto.decrypter
FormPost
swift.common.middleware.formpost
GateKeeper
swift.common.middleware.gatekeeper
Healthcheck
swift.common.middleware.healthcheck
Keymaster
Keymaster middleware should be deployed in conjunction with the encryption
middleware.
swift.common.middleware.crypto.keymaster
KeystoneAuth
swift.common.middleware.keystoneauth
List Endpoints
swift.common.middleware.list_endpoints
Memcache
swift.common.middleware.memcache
Name Check (Forbidden Character Filter)
swift.common.middleware.name_check
Object Versioning
swift.common.middleware.versioned_writes
Proxy Logging
swift.common.middleware.proxy_logging
Ratelimit
swift.common.middleware.ratelimit
Recon
swift.common.middleware.recon
Server Side Copy
swift.common.middleware.copy
Static Large Objects
Please see the SLO docs for slo-doc
further details.
StaticWeb
swift.common.middleware.staticweb
Symlink
swift.common.middleware.symlink
TempAuth
swift.common.middleware.tempauth
TempURL
swift.common.middleware.tempurl
XProfile
swift.common.middleware.xprofile