'Content-Length' header does not show up for DLO GET with 10k+ segments
Bug #1680219 reported by
Andrew Welleck
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Fix Released
|
Undecided
|
Kazuhiro MIYAHARA |
Bug Description
We have noticed that when doing a GET on a DLO that is segmented 10k+ times the 'Content-Length' header is not included in the response. I was able to recreate this in an SAIO using python-swiftclient to upload a 10k byte object. Then using curl to create the object manifest:
curl -v -XPUT -H "X-Auth-
And finally curl to GET the object:
curl -XGET -i $STORAGE_
When testing an object with slightly less than 10k segments the response header includes the 'Content-Length'.
Changed in swift: | |
assignee: | nobody → Kazuhiro MIYAHARA (miyahara-kazuhiro) |
To post a comment you must log in.
Correct -- the Content-Length header is only included if all DLO segments fit within a single listing page. This is in part because by the time that we get to the second (or third, or fourth, ...) listing page, different objects may appear in the listing. If you want Content-Length returned on all GETs/HEADs, you should use SLOs (which offer more guarantees about the composition and integrity of the large object).
We should call this out in the documentation at https:/ /docs.openstack .org/swift/ latest/ api/large_ objects. html#dynamic- large-objects