]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: improve metadata handling on copy operation of Swift API. 4568/head
authorRadoslaw Zarzynski <rzarzynski@mirantis.com>
Sat, 21 Mar 2015 14:53:08 +0000 (15:53 +0100)
committerLoic Dachary <ldachary@redhat.com>
Wed, 6 May 2015 12:52:22 +0000 (14:52 +0200)
Fixes: #10645
Backport: hammer
Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
(cherry picked from commit a00cb31cc52e91bfacdd15e0af60be74e66c1996)

src/rgw/rgw_rest_swift.cc

index 1c948337d3d6b00f140d0b1e7161488233e2aad3..1d9f7a93d33ce9d0e309029e716c8febe46c1ffa 100644 (file)
@@ -592,7 +592,10 @@ int RGWCopyObj_ObjStore_SWIFT::get_params()
   dest_bucket_name = s->bucket_name_str;
   dest_object = s->object.name;
 
-  if (!s->info.x_meta_map.empty()) {
+  const char * const fresh_meta = s->info.env->get("HTTP_X_FRESH_METADATA");
+  if (fresh_meta && strcasecmp(fresh_meta, "TRUE") == 0) {
+    attrs_mod = RGWRados::ATTRSMOD_REPLACE;
+  } else {
     attrs_mod = RGWRados::ATTRSMOD_MERGE;
   }