From: liubingrun Date: Thu, 24 Oct 2024 14:23:09 +0000 (-0400) Subject: Ensure the ETag format is consistent with AWS S3 API X-Git-Tag: testing/wip-vshankar-testing-20250603.055014-reef-debug~23^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=7c428f58b725c9b7a71348eda63f34196beaf5f9;p=ceph-ci.git Ensure the ETag format is consistent with AWS S3 API AWS S3 API quotes ETAG everywhere. We still missed a few places. checked with following cmd. ``` $ rg -i "dump.*\"ETag\"" ceph ./src/rgw/rgw_rest_s3.cc 1863: s->formatter->dump_format("ETag", "\"%s\"", iter->meta.etag.c_str()); 1955: s->formatter->dump_format("ETag", "\"%s\"", iter->meta.etag.c_str()); 2030: s->formatter->dump_format("ETag", "\"%s\"", iter->meta.etag.c_str()); 2099: s->formatter->dump_format("ETag", "\"%s\"", iter->meta.etag.c_str()); 2785: s->formatter->dump_format("ETag", "\"%s\"", etag.c_str()); 3422: s->formatter->dump_string("ETag", etag); 3725: s->formatter->dump_format("ETag", "\"%s\"",etag.c_str()); 4228: s->formatter->dump_string("ETag", etag); 4298: s->formatter->dump_format("ETag", "\"%s\"", part->get_etag().c_str()); ./src/rgw/rgw_rest.cc 421: return dump_header(s, "etag", etag); 423: return dump_header_quoted(s, "ETag", etag); ./src/rgw/driver/rados/rgw_sync_module_es_rest.cc 347: s->formatter->dump_format("ETag", "\"%s\"", e.meta.etag.c_str()); ./src/rgw/rgw_admin.cc 8612: handled = dump_string("etag", bl, formatter.get()); ``` Signed-off-by: liubingrun (cherry picked from commit b8795299aacfa2aee5ec4a6fe117424e2ce97b88) Conflicts: src/rgw/rgw_rest_s3.cc no checksums in response --- diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index 5a3f0dd7aeb..f2dc235fde7 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -2768,7 +2768,7 @@ void RGWPutObj_ObjStore_S3::send_response() if (strftime(buf, sizeof(buf), "%Y-%m-%dT%T.000Z", &tmp) > 0) { s->formatter->dump_string("LastModified", buf); } - s->formatter->dump_string("ETag", etag); + s->formatter->dump_format("ETag", "\"%s\"", etag.c_str()); s->formatter->close_section(); rgw_flush_formatter_and_reset(s, s->formatter); return; @@ -3396,7 +3396,7 @@ done: } s->formatter->dump_string("Bucket", s->bucket_name); s->formatter->dump_string("Key", s->object->get_name()); - s->formatter->dump_string("ETag", etag); + s->formatter->dump_format("ETag", "\"%s\"", etag.c_str()); s->formatter->close_section(); } s->err.message = err_msg; @@ -4080,7 +4080,7 @@ void RGWCompleteMultipart_ObjStore_S3::send_response() } s->formatter->dump_string("Bucket", s->bucket_name); s->formatter->dump_string("Key", s->object->get_name()); - s->formatter->dump_string("ETag", etag); + s->formatter->dump_format("ETag", "\"%s\"", etag.c_str()); s->formatter->close_section(); rgw_flush_formatter_and_reset(s, s->formatter); }