@@ -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