Merge pull request #15045 from shashalu/fix-slo

rgw: fix X-Object-Meta-Static-Large-Object in SLO download

Reviewed-by: Casey Bodley <cbodley@redhat.com>
This commit is contained in:
Casey Bodley 2017-05-19 14:56:53 -04:00 committed by GitHub
commit f0300415af
3 changed files with 7 additions and 1 deletions

View File

@ -3381,7 +3381,7 @@ void RGWPutObj::execute()
* processing any input from user in order to prohibit overwriting. */
if (slo_info) {
bufferlist slo_userindicator_bl;
::encode("True", slo_userindicator_bl);
slo_userindicator_bl.append("True", 4);
emplace_attr(RGW_ATTR_SLO_UINDICATOR, std::move(slo_userindicator_bl));
}

View File

@ -275,6 +275,9 @@ int RGWGetObj_ObjStore_S3::send_response_data(bufferlist& bl, off_t bl_ofs,
if (!content_type) {
content_type = iter->second.c_str();
}
} else if (strcmp(name, RGW_ATTR_SLO_UINDICATOR) == 0) {
// this attr has an extra length prefix from ::encode() in prior versions
dump_header(s, "X-Object-Meta-Static-Large-Object", "True");
} else if (strncmp(name, RGW_ATTR_META_PREFIX,
sizeof(RGW_ATTR_META_PREFIX)-1) == 0) {
/* User custom metadata. */

View File

@ -1105,6 +1105,9 @@ static void dump_object_metadata(struct req_state * const s,
if (aiter != std::end(rgw_to_http_attrs)) {
response_attrs[aiter->second] = kv.second.c_str();
} else if (strcmp(name, RGW_ATTR_SLO_UINDICATOR) == 0) {
// this attr has an extra length prefix from ::encode() in prior versions
dump_header(s, "X-Object-Meta-Static-Large-Object", "True");
} else if (strncmp(name, RGW_ATTR_META_PREFIX,
sizeof(RGW_ATTR_META_PREFIX)-1) == 0) {
name += sizeof(RGW_ATTR_META_PREFIX) - 1;