]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: return the version id in get object and object metadata request. 14117/head
authorZhang Shaowen <zhangshaowen@cmss.chinamobile.com>
Fri, 24 Mar 2017 06:23:18 +0000 (14:23 +0800)
committerZhang Shaowen <zhangshaowen@cmss.chinamobile.com>
Fri, 24 Mar 2017 06:23:18 +0000 (14:23 +0800)
Fixes: http://tracker.ceph.com/issues/19370
Signed-off-by: Zhang Shaowen <zhangshaowen@cmss.chinamobile.com>
src/rgw/rgw_op.cc
src/rgw/rgw_op.h
src/rgw/rgw_rest_s3.cc

index aaf7f96438cf9d629434d5fd2717c44ce2b8cb01..038a5ec84c80f59e0235765aa1c5fd621a0dfea7 100644 (file)
@@ -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())
index a6eff0e710df00838410c4ea0eb9484184d83618..e0da8bae9cd258bab43df53b93de9471e522d1c4 100644 (file)
@@ -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;
index 277ff62c25660b48c30fb11553581fd8c4d268c3..b330f88ca0fce03325a210b5a16d69ec1f6f4a38 100644 (file)
@@ -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()) {