diff options
author | Zuul <zuul@review.openstack.org> | 2018-03-29 06:22:38 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2018-03-29 06:22:38 +0000 |
commit | 96daa8e39d476e1b9e44af4449275b6b904df251 (patch) | |
tree | 6c815bb041ffbcc97e9640a26892e8608481a60a | |
parent | 72230f86bea82d9164002bd28dadb49adeb05d6a (diff) | |
parent | 0c41c91d55de1e4cfc09c00fa4968b0525694a96 (diff) | |
download | swift-96daa8e39d476e1b9e44af4449275b6b904df251.tar.gz |
Merge "Remove zero-byte final segment hack" into feature/s3api
-rw-r--r-- | swift/common/middleware/s3api/controllers/multi_upload.py | 19 | ||||
-rw-r--r-- | test/unit/common/middleware/s3api/test_multi_upload.py | 8 |
2 files changed, 3 insertions, 24 deletions
diff --git a/swift/common/middleware/s3api/controllers/multi_upload.py b/swift/common/middleware/s3api/controllers/multi_upload.py index 4d757790f..3e6034226 100644 --- a/swift/common/middleware/s3api/controllers/multi_upload.py +++ b/swift/common/middleware/s3api/controllers/multi_upload.py @@ -592,19 +592,6 @@ class UploadController(Controller): self.logger.error(e) raise exc_type, exc_value, exc_traceback - # Following swift commit 7f636a5, zero-byte segments aren't allowed, - # even as the final segment - empty_seg = None - if manifest[-1]['size_bytes'] == 0: - empty_seg = manifest.pop() - - # We'll check the sizes of all except the last segment below, but - # since we just popped off a zero-byte segment, we should check - # that last segment, too. - if manifest and \ - manifest[-1]['size_bytes'] < self.conf.min_segment_size: - raise EntityTooSmall() - # Check the size of each segment except the last and make sure they are # all more than the minimum upload chunk size for info in manifest[:-1]: @@ -634,12 +621,6 @@ class UploadController(Controller): else: raise - if empty_seg: - # clean up the zero-byte segment - _, empty_seg_cont, empty_seg_name = empty_seg['path'].split('/', 2) - req.get_response(self.app, 'DELETE', - container=empty_seg_cont, obj=empty_seg_name) - # clean up the multipart-upload record obj = '%s/%s' % (req.object_name, upload_id) try: diff --git a/test/unit/common/middleware/s3api/test_multi_upload.py b/test/unit/common/middleware/s3api/test_multi_upload.py index d66eeb748..d686ecf45 100644 --- a/test/unit/common/middleware/s3api/test_multi_upload.py +++ b/test/unit/common/middleware/s3api/test_multi_upload.py @@ -818,12 +818,11 @@ class TestS3ApiMultiUpload(S3ApiTestCase): ('HEAD', '/v1/AUTH_test/empty-bucket+segments/object/X'), ('GET', '/v1/AUTH_test/empty-bucket+segments?delimiter=/&' 'format=json&prefix=object/X/'), - # note the lack of multipart-manifest=put below - ('PUT', '/v1/AUTH_test/empty-bucket/object'), - ('DELETE', '/v1/AUTH_test/empty-bucket+segments/object/X/1'), + ('PUT', + '/v1/AUTH_test/empty-bucket/object?multipart-manifest=put'), ('DELETE', '/v1/AUTH_test/empty-bucket+segments/object/X'), ]) - _, _, put_headers = self.swift.calls_with_headers[-3] + _, _, put_headers = self.swift.calls_with_headers[-2] self.assertEqual(put_headers.get('X-Object-Meta-Foo'), 'bar') self.assertEqual(put_headers.get('Content-Type'), 'baz/quux') @@ -936,7 +935,6 @@ class TestS3ApiMultiUpload(S3ApiTestCase): ('GET', '/v1/AUTH_test/bucket+segments?delimiter=/&' 'format=json&prefix=object/X/'), ('PUT', '/v1/AUTH_test/bucket/object?multipart-manifest=put'), - ('DELETE', '/v1/AUTH_test/bucket+segments/object/X/3'), ('DELETE', '/v1/AUTH_test/bucket+segments/object/X'), ]) |