Open1
S3からすべてのKeyを取得するTips
def get_all_keys(s3_client, bucket_name, prefix, keys, marker):
objects = s3_client.list_objects_v2(
Bucket=bucket_name, Prefix=prefix, Delimiter="/", StartAfter=marker
)
if "Contents" in objects:
keys.extend(content["Key"] for content in objects["Contents"])
# 返り値のIsTruncatedがTrueかどうかを確認する
if objects.get("IsTruncated"):
# marker引数に取得したkeysの末尾の値を設定して再度get_all_keysを実行する
return get_all_keys(
s3_client,
bucket_name=bucket_name,
prefix=prefix,
keys=keys,
marker=keys[-1],
)
return keys