
Rewrite server side copy and 'object post as copy' feature as middleware to simplify the PUT method in the object controller code. COPY is no longer a verb implemented as public method in Proxy application. The server side copy middleware is inserted to the left of dlo, slo and versioned_writes middlewares in the proxy server pipeline. As a result, dlo and slo copy_hooks are no longer required. SLO manifests are now validated when copied so when copying a manifest to another account the referenced segments must be readable in that account for the manifest copy to succeed (previously this validation was not made, meaning the manifest was copied but could be unusable if the segments were not readable). With this change, there should be no change in functionality or existing behavior. This is asserted with (almost) no changes required to existing functional tests. Some notes (for operators): * Middleware required to be auto-inserted before slo and dlo and versioned_writes * Turning off server side copy is not configurable. * object_post_as_copy is no longer a configurable option of proxy server but of this middleware. However, for smooth upgrade, config option set in proxy server app is also read. DocImpact: Introducing server side copy as middleware Co-Authored-By: Alistair Coles <alistair.coles@hpe.com> Co-Authored-By: Thiago da Silva <thiago@redhat.com> Change-Id: Ic96a92e938589a2f6add35a40741fd062f1c29eb Signed-off-by: Prashanth Pai <ppai@redhat.com> Signed-off-by: Thiago da Silva <thiago@redhat.com>
239 lines
4.3 KiB
ReStructuredText
239 lines
4.3 KiB
ReStructuredText
.. _common_middleware:
|
|
|
|
**********
|
|
Middleware
|
|
**********
|
|
|
|
Account Quotas
|
|
==============
|
|
|
|
.. automodule:: swift.common.middleware.account_quotas
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
.. _bulk:
|
|
|
|
Bulk Operations (Delete and Archive Auto Extraction)
|
|
====================================================
|
|
|
|
.. automodule:: swift.common.middleware.bulk
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
.. _catch_errors:
|
|
|
|
CatchErrors
|
|
=============
|
|
|
|
.. automodule:: swift.common.middleware.catch_errors
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
CNAME Lookup
|
|
============
|
|
|
|
.. automodule:: swift.common.middleware.cname_lookup
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
.. _container-quotas:
|
|
|
|
Container Quotas
|
|
================
|
|
|
|
.. automodule:: swift.common.middleware.container_quotas
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
.. _container-sync:
|
|
|
|
Container Sync Middleware
|
|
=========================
|
|
|
|
.. automodule:: swift.common.middleware.container_sync
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
Cross Domain Policies
|
|
=====================
|
|
|
|
.. automodule:: swift.common.middleware.crossdomain
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
.. _discoverability:
|
|
|
|
Discoverability
|
|
===============
|
|
|
|
Swift will by default provide clients with an interface providing details
|
|
about the installation. Unless disabled (i.e ``expose_info=false`` in
|
|
:ref:`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-temp-url GET 3600 /info secret 2>/dev/null | sed s/temp_url/swiftinfo/g
|
|
|
|
Domain Remap
|
|
============
|
|
|
|
.. automodule:: swift.common.middleware.domain_remap
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
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 :ref:`dlo-doc` further details.
|
|
|
|
.. _formpost:
|
|
|
|
FormPost
|
|
========
|
|
|
|
.. automodule:: swift.common.middleware.formpost
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
.. _gatekeeper:
|
|
|
|
GateKeeper
|
|
=============
|
|
|
|
.. automodule:: swift.common.middleware.gatekeeper
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
.. _healthcheck:
|
|
|
|
Healthcheck
|
|
===========
|
|
|
|
.. automodule:: swift.common.middleware.healthcheck
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
.. _keystoneauth:
|
|
|
|
KeystoneAuth
|
|
============
|
|
|
|
.. automodule:: swift.common.middleware.keystoneauth
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
.. _list_endpoints:
|
|
|
|
List Endpoints
|
|
==============
|
|
|
|
.. automodule:: swift.common.middleware.list_endpoints
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
Memcache
|
|
========
|
|
|
|
.. automodule:: swift.common.middleware.memcache
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
Name Check (Forbidden Character Filter)
|
|
=======================================
|
|
|
|
.. automodule:: swift.common.middleware.name_check
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
.. _versioned_writes:
|
|
|
|
Object Versioning
|
|
=================
|
|
|
|
.. automodule:: swift.common.middleware.versioned_writes
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
Proxy Logging
|
|
=============
|
|
|
|
.. automodule:: swift.common.middleware.proxy_logging
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
Ratelimit
|
|
=========
|
|
|
|
.. automodule:: swift.common.middleware.ratelimit
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
.. _recon:
|
|
|
|
Recon
|
|
===========
|
|
|
|
.. automodule:: swift.common.middleware.recon
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
.. _copy:
|
|
|
|
Server Side Copy
|
|
================
|
|
|
|
.. automodule:: swift.common.middleware.copy
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
Static Large Objects
|
|
====================
|
|
|
|
Please see
|
|
the SLO docs for :ref:`slo-doc` further details.
|
|
|
|
|
|
.. _staticweb:
|
|
|
|
StaticWeb
|
|
=========
|
|
|
|
.. automodule:: swift.common.middleware.staticweb
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
.. _common_tempauth:
|
|
|
|
TempAuth
|
|
========
|
|
|
|
.. automodule:: swift.common.middleware.tempauth
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
.. _tempurl:
|
|
|
|
TempURL
|
|
=======
|
|
|
|
.. automodule:: swift.common.middleware.tempurl
|
|
:members:
|
|
:show-inheritance:
|
|
|
|
XProfile
|
|
==============
|
|
|
|
.. automodule:: swift.common.middleware.xprofile
|
|
:members:
|
|
:show-inheritance:
|