Skip to content

Commit 6c534ba

Browse files
committed
rgw:attrs: dump marker and max_parts only if sent
Suggested by Casey. Signed-off-by: Matt Benjamin <[email protected]>
1 parent 2b8689e commit 6c534ba

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

src/rgw/rgw_op.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1650,8 +1650,8 @@ class RGWGetObjAttrs : public RGWGetObj {
16501650
protected:
16511651
std::string version_id;
16521652
std::string expected_bucket_owner;
1653-
int marker{0};
1654-
int max_parts{1000};
1653+
std::optional<int> marker;
1654+
std::optional<int> max_parts;
16551655
uint16_t requested_attributes{0};
16561656
#if 0
16571657
/* used to decrypt attributes for objects stored with SSE-C */

src/rgw/rgw_rest_s3.cc

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3835,7 +3835,7 @@ int RGWGetObjAttrs_ObjStore_S3::get_params(optional_yield y)
38353835
<< err << dendl;
38363836
return -ERR_INVALID_PART;
38373837
}
3838-
max_parts = std::min(max_parts, 1000);
3838+
max_parts = std::min(*max_parts, 1000);
38393839
}
38403840

38413841
hdr = env->get_optional("HTTP_X_AMZ_PART_NUMBER_MARKER");
@@ -3950,7 +3950,9 @@ void RGWGetObjAttrs_ObjStore_S3::send_response()
39503950

39513951
int ret =
39523952
s->object->list_parts(
3953-
this, s->cct, max_parts, marker,
3953+
this, s->cct,
3954+
max_parts ? *max_parts : 1000,
3955+
marker ? *marker : 0,
39543956
&next_marker, &truncated,
39553957
[&](const Object::Part& part) -> int {
39563958
s->formatter->open_object_section("Part");
@@ -3972,9 +3974,15 @@ void RGWGetObjAttrs_ObjStore_S3::send_response()
39723974
s->formatter->dump_int("PartsCount", *multipart_parts_count);
39733975
s->formatter->dump_int("TotalPartsCount", *multipart_parts_count);
39743976
s->formatter->dump_bool("IsTruncated", truncated);
3975-
s->formatter->dump_int("MaxParts", max_parts);
3976-
s->formatter->dump_int("NextPartNumberMarker", next_marker);
3977-
s->formatter->dump_int("PartNumberMarker", marker);
3977+
if (max_parts) {
3978+
s->formatter->dump_int("MaxParts", *max_parts);
3979+
}
3980+
if(truncated) {
3981+
s->formatter->dump_int("NextPartNumberMarker", next_marker);
3982+
}
3983+
if (marker) {
3984+
s->formatter->dump_int("PartNumberMarker", *marker);
3985+
}
39783986
s->formatter->close_section();
39793987
} /* multipart_parts_count positive */
39803988
} /* ObjectParts */

0 commit comments

Comments
 (0)