From 3105e2327ea29558fdd97dfb6da2c7ee9ec08f8f Mon Sep 17 00:00:00 2001 From: Zhang Shaowen Date: Tue, 9 May 2017 16:39:39 +0800 Subject: [PATCH] rgw: VersionIdMarker and NextVersionIdMarker should be returned when listing object versions if necessary. Fixes: http://tracker.ceph.com/issues/19886 Signed-off-by: Zhang Shaowen (cherry picked from commit f805c3e08948e379b7d2c4f2faf9e7f550e4cb23) --- src/rgw/rgw_op.cc | 2 +- src/rgw/rgw_rest_s3.cc | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index bcc7faf549533..cbcbf77df54a5 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -1949,7 +1949,7 @@ void RGWListBucket::execute() list_op.params.list_versions = list_versions; op_ret = list_op.list_objects(max, &objs, &common_prefixes, &is_truncated); - if (op_ret >= 0 && !delimiter.empty()) { + if (op_ret >= 0) { next_marker = list_op.get_next_marker(); } } diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index a745b95f5a2ef..aa3ca9a7339fe 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -497,8 +497,11 @@ void RGWListBucket_ObjStore_S3::send_versioned_response() s->formatter->dump_string("Name", s->bucket_name); s->formatter->dump_string("Prefix", prefix); s->formatter->dump_string("KeyMarker", marker.name); - if (is_truncated && !next_marker.empty()) + s->formatter->dump_string("VersionIdMarker", marker.instance); + if (is_truncated && !next_marker.empty()) { s->formatter->dump_string("NextKeyMarker", next_marker.name); + s->formatter->dump_string("NextVersionIdMarker", next_marker.instance); + } s->formatter->dump_int("MaxKeys", max); if (!delimiter.empty()) s->formatter->dump_string("Delimiter", delimiter); -- 2.39.5