in aws_codeseeder/services/s3.py [0:0]
def list_keys(bucket: str) -> List[Dict[str, str]]:
"""List the keys/objects in an S3 Buket
Parameters
----------
bucket : str
S3 Bucket name
Returns
-------
List[Dict[str, str]]
List of Keys and VersionIds
"""
client_s3 = boto3_client("s3")
paginator = client_s3.get_paginator("list_object_versions")
response_iterator = paginator.paginate(Bucket=bucket, PaginationConfig={"PageSize": 1_000})
keys: List[Dict[str, str]] = []
for page in response_iterator:
if "DeleteMarkers" in page:
for delete_marker in page["DeleteMarkers"]:
keys.append(
{
"Key": delete_marker["Key"],
"VersionId": delete_marker["VersionId"],
}
)
if "Versions" in page:
for version in page["Versions"]:
keys.append({"Key": version["Key"], "VersionId": version["VersionId"]})
return keys