Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
None
-
None
Description
If you upload a multipart blob named "foo" and then upload a non-multipart blob named "foo.bar" to the same container then when you get the contents of "foo" they will include the contents of "foo.bar".
This happens because CommonSwiftAsyncClient uses the blob's name as the value for the X-Object-Manifest header, and swift includes all blobs whose names start with this value when responding to a GET on the multipart blob.
http://docs.openstack.org/trunk/openstack-object-storage/admin/content/direct-api-management-of-large-objects.html and http://www.rackspace.com/blog/rackspace-cloud-files-now-supporting-extremely-large-file-sizes/ append a / to the end of the X-Object-Manifest header which avoids this issue in the common case (it can still happen if a blob with / in the name is uploaded, but this is likely to be uncommon because / does not commonly appear in filenames as it is the UNIX path separator character).