S3 - list_objects(MaxKeys=0) (#4411)

This commit is contained in:
Bert Blommers 2021-10-14 09:49:50 +00:00 committed by GitHub
parent 6f13132a79
commit df1732c737
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 1 deletions

View File

@ -628,7 +628,11 @@ class ResponseObject(_TemplateEnvironmentMixin, ActionAuthenticatorMixin):
return result_keys[continuation_index:]
def _truncate_result(self, result_keys, max_keys):
if len(result_keys) > max_keys:
if max_keys == 0:
result_keys = []
is_truncated = True
next_continuation_token = None
elif len(result_keys) > max_keys:
is_truncated = "true"
result_keys = result_keys[:max_keys]
item = result_keys[-1]

View File

@ -2851,6 +2851,17 @@ def test_delimiter_optional_in_response():
assert resp.get("Delimiter") == "/"
@mock_s3
def test_list_objects_with_pagesize_0():
s3 = boto3.client("s3", region_name=DEFAULT_REGION_NAME)
s3.create_bucket(Bucket="mybucket")
resp = s3.list_objects(Bucket="mybucket", MaxKeys=0)
resp["Name"].should.equal("mybucket")
resp["MaxKeys"].should.equal(0)
resp["IsTruncated"].should.equal(False)
resp.shouldnt.have.key("Contents")
@mock_s3
def test_boto3_list_objects_truncated_response():
s3 = boto3.client("s3", region_name=DEFAULT_REGION_NAME)