[pbs-devel] [PATCH proxmox v2] fix #7008: s3-client: drop unused optional object list v2 response fields

Fabian Grünbichler f.gruenbichler at proxmox.com
Tue Nov 11 16:08:13 CET 2025


On November 11, 2025 3:47 pm, Christian Ebner wrote:
> The ListObjectsV2 Response contains fields as bucket name, number of
> keys, number of max keys of the response and prefix of the response
> keys [0]. Since the AWS S3 API reference documentation does not
> explicitly mention these fields as required, they are to be
> considered optional and because they are currently not used other
> than for response deserialization which will fail if missing, drop
> these fields for now.

do we expect to have a use case for the mat some point? then it might be
better to make them optional instead of dropping them altogether?

(not a nack, just a question ;))

> 
> Fixes: https://forum.proxmox.com/threads/171899/
> Fixes: https://bugzilla.proxmox.com/show_bug.cgi?id=7008
> Signed-off-by: Christian Ebner <c.ebner at proxmox.com>
> ---
> changes since version 1:
> - include issue which fixes this as well
> - rebased onto current master
> 
>  proxmox-s3-client/src/response_reader.rs | 24 ------------------------
>  1 file changed, 24 deletions(-)
> 
> diff --git a/proxmox-s3-client/src/response_reader.rs b/proxmox-s3-client/src/response_reader.rs
> index bc01db6a..47fcd129 100644
> --- a/proxmox-s3-client/src/response_reader.rs
> +++ b/proxmox-s3-client/src/response_reader.rs
> @@ -21,14 +21,6 @@ pub(crate) struct ResponseReader {
>  pub struct ListObjectsV2Response {
>      /// Parsed http date header from response.
>      pub date: Option<HttpDate>,
> -    /// Bucket name.
> -    pub name: String,
> -    /// Requested key prefix.
> -    pub prefix: String,
> -    /// Number of keys returned in this response.
> -    pub key_count: u64,
> -    /// Number of max keys the response can contain.
> -    pub max_keys: u64,
>      /// Flag indication if response was truncated because of key limits.
>      pub is_truncated: bool,
>      /// Token used for this request to get further keys in truncated responses.
> @@ -44,14 +36,6 @@ pub struct ListObjectsV2Response {
>  /// Subset of items used to deserialize a list objects v2 respsonse.
>  /// https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html#API_ListObjectsV2_ResponseSyntax
>  struct ListObjectsV2ResponseBody {
> -    /// Bucket name.
> -    pub name: String,
> -    /// Requested key prefix.
> -    pub prefix: String,
> -    /// Number of keys returned in this response.
> -    pub key_count: u64,
> -    /// Number of max keys the response can contain.
> -    pub max_keys: u64,
>      /// Flag indication if response was truncated because of key limits.
>      pub is_truncated: bool,
>      /// Token used for this request to get further keys in truncated responses.
> @@ -66,10 +50,6 @@ impl ListObjectsV2ResponseBody {
>      fn with_optional_date(self, date: Option<HttpDate>) -> ListObjectsV2Response {
>          ListObjectsV2Response {
>              date,
> -            name: self.name,
> -            prefix: self.prefix,
> -            key_count: self.key_count,
> -            max_keys: self.max_keys,
>              is_truncated: self.is_truncated,
>              continuation_token: self.continuation_token,
>              next_continuation_token: self.next_continuation_token,
> @@ -550,10 +530,6 @@ fn parse_list_objects_v2_response_test() {
>          </ListBucketResult>
>      "#;
>      let result: ListObjectsV2ResponseBody = serde_xml_rs::from_str(response_body).unwrap();
> -    assert_eq!(result.name, "bucket0");
> -    assert_eq!(result.prefix, ".cnt");
> -    assert_eq!(result.key_count, 2);
> -    assert_eq!(result.max_keys, 1000);
>      assert!(!result.is_truncated);
>      assert_eq!(
>          result.contents.unwrap(),
> -- 
> 2.47.3
> 
> 
> 
> _______________________________________________
> pbs-devel mailing list
> pbs-devel at lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel
> 
> 
> 




More information about the pbs-devel mailing list