docs: private ListBucketResult listObjectsV2(String bucketName, String continuationToken, String prefix, String delimiter)
      throws InvalidBucketNameException, NoSuchAlgorithmException, InsufficientDataException, IOException,
             InvalidKeyException, NoResponseException, XmlPullParserException, ErrorResponseException,
             InternalException {
      Map<String,String> queryParamMap = new HashMap<>();
      queryParamMap.put("list-type", "2");
  
      if (continuationToken != null) {
        queryParamMap.put("continuation-token", continuationToken);
      }
  
      if (prefix != null) {
        queryParamMap.put("prefix", prefix);
      } else {
        queryParamMap.put("prefix", "");
      }
  
      if (delimiter != null) {
        queryParamMap.put("delimiter", delimiter);
      } else {
        queryParamMap.put("delimiter", "");
      }
  
      HttpResponse response = executeGet(bucketName, null, null, queryParamMap);
  
      ListBucketResult result = new ListBucketResult();
      result.parseXml(response.body().charStream());
      response.body().close();
      return result;
    }