swift/doc/source/middleware.rst
Kota Tsuyuzaki 636b922f3b Import swift3 into swift repo as s3api middleware
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>
2018-04-27 15:53:57 +09:00

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

swift.common.middleware.symlink

TempAuth

swift.common.middleware.tempauth

TempURL

swift.common.middleware.tempurl

XProfile

swift.common.middleware.xprofile