Container object listing shows wrong size for manifest files (large object support)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Won't Fix
|
Undecided
|
Unassigned |
Bug Description
The object listing in a container shows file size 0 for a manifest file (large object support: http://
Example:
curl -k -H "X-Auth-Token: AUTH_tkc75cc6d1
[{"name"
"hash":
"bytes":1073741824
"content_
"last_
{"name"
"hash":
"bytes":1073741824
"content_
"last_
{"name"
"hash":
"bytes":1073741824
"content_
"last_
{"name"
"hash":
"bytes":630096023
"content_
"last_
{"name"
"hash":
"bytes":0
"content_
"last_
The manifest file (af44a405582f4a
curl -I -k -H "X-Auth-Token: AUTH_tkc75cc6d1
HTTP/1.1 200 OK
X-Object-Manifest: miniserver-
Content-Type: x-application/
Content-Length: 3851321495
Last-Modified: Fri, 14 Oct 2011 10:40:30 GMT
Etag: "eafa4a9622e181
Accept-Ranges: bytes
Date: Fri, 14 Oct 2011 11:55:28 GMT
It doesn't matter if the output it's in JSON or XML format, the size is always 0.
This is swift 1.4.3.
Obtaining the size of a segmented object can be an expensive operation (GET/HEAD on the manifest).
Obtaining the size of up to 10,000 segmented objects can be very expensive (container listing).
That's why it's implemented the way it is currently.