ETag header is not double quoted
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Fix Released
|
Undecided
|
Tim Burke |
Bug Description
According to RFC 2616 (3.11 Entity Tags) the value of the ETag header must be a double
quoted string but the swift server always returns unquoted strings.
I think the code snippet (https:/
metadata = {
'X-Timestamp': request.
'Content-Type': request.
'ETag': etag,
'Content-
}
should be changed like that:
metadata = {
'X-Timestamp': request.
'Content-Type': request.
'ETag': '"' + etag + '"',
'Content-
}
There might be some other code snippets to change as well.
zapb
When swift was originally written, it was to replace an existing system. The requirements for swift were, "must be better than the old system and customers can't notice". That meant we had to port over a couple of the bugs from the old system (like no quotes on the etag). So it comes down to "historical reasons", and now at this point (3+ years of production swift deployments), we can't assume that clients will still work if we change that. and so it stays. If we have a swift api v2, that's one of the things that would probably change