From d15fb09ca8f69f4c286b9c4b88a79c07276c0a2c Mon Sep 17 00:00:00 2001 From: Zhang Shaowen Date: Fri, 24 Mar 2017 14:23:18 +0800 Subject: [PATCH] rgw: return the version id in get object and object metadata request. Fixes: http://tracker.ceph.com/issues/19370 Signed-off-by: Zhang Shaowen --- src/rgw/rgw_op.cc | 1 + src/rgw/rgw_op.h | 1 + src/rgw/rgw_rest_s3.cc | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index aaf7f96438c..038a5ec84c8 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -1395,6 +1395,7 @@ void RGWGetObj::execute() op_ret = read_op.prepare(); if (op_ret < 0) goto done_err; + version_id = read_op.state.obj.key.instance; /* start gettorrent */ if (torrent.get_flag()) diff --git a/src/rgw/rgw_op.h b/src/rgw/rgw_op.h index a6eff0e710d..e0da8bae9cd 100644 --- a/src/rgw/rgw_op.h +++ b/src/rgw/rgw_op.h @@ -135,6 +135,7 @@ protected: bool is_slo; string lo_etag; bool rgwx_stat; /* extended rgw stat operation */ + string version_id; // compression attrs RGWCompressionInfo cs_info; diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index 277ff62c256..b330f88ca0f 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -218,6 +218,10 @@ int RGWGetObj_ObjStore_S3::send_response_data(bufferlist& bl, off_t bl_ofs, dump_content_length(s, total_len); dump_last_modified(s, lastmod); + if (!version_id.empty()) { + dump_header(s, "x-amz-version-id", version_id); + } + if (! op_ret) { if (! lo_etag.empty()) { -- 2.39.5