swift/swift/common/middleware/s3api/controllers
Tim Burke 02548717ac s3api: Allow CompleteMultipartUpload requests to be retried
When completing a multipart-upload, include the upload-id in sysmeta.
If we can't find the upload marker, check the final object name; if it
has an upload-id in sysmeta and it matches the upload-id that we're
trying to complete, allow the complete to continue.

Also add an early return if the already-completed upload's ETag matches
the computed ETag for the user's request. This should help clients that
can't take advantage of how we dribble out whitespace to try to keep the
conneciton alive: The client times out, retries, and if the upload
actually completed, it gets a fast 200 response.

Change-Id: I38958839be5b250c9d268ec7c50a56cdb56c2fa2
2020-06-24 10:09:26 -07:00
..
__init__.py s3api: Add basic support for ?tagging requests 2020-06-12 13:02:18 +05:30
acl.py Update hacking for Python3 2020-04-03 21:21:07 +02:00
base.py Import swift3 into swift repo as s3api middleware 2018-04-27 15:53:57 +09:00
bucket.py s3api: Implement object versioning API 2020-01-28 14:00:08 -08:00
location.py s3api: Change default location to us-east-1 2018-11-12 11:04:20 -08:00
logging.py Update hacking for Python3 2020-04-03 21:21:07 +02:00
multi_delete.py s3api: Implement object versioning API 2020-01-28 14:00:08 -08:00
multi_upload.py s3api: Allow CompleteMultipartUpload requests to be retried 2020-06-24 10:09:26 -07:00
obj.py s3api: Check whether versioning is enabled more 2020-04-27 21:19:17 -07:00
s3_acl.py docs: clean up SAIO formatting 2019-03-04 17:37:12 -08:00
service.py Get functional/tests.py running under py3 2019-05-08 17:44:03 -07:00
tagging.py s3api: Add basic support for ?tagging requests 2020-06-12 13:02:18 +05:30
versioning.py s3api: Implement object versioning API 2020-01-28 14:00:08 -08:00