我使用下面的语法来列出s3中使用boto3的版本。
object_versions = s3.list_object_versions(Bucket=bucket_name)
字符串奇怪的是,它没有列出只剩下一个版本的对象。请看下面的截图,我可以在aws控制台上看到对象,但我不能从我的boto3脚本中获得它们。
的数据
5q4ezhmt1#
我发现了问题。boto 3的列表对象API只列出了有限的结果(~1000个对象)。要超出此范围,您可能需要使用paginator。下面是一个示例代码,你可以忽略不需要的行。
import boto3s3 = boto3.client('s3')paginator = s3.get_paginator('list_object_versions')pages = paginator.paginate(Bucket='bucket_name', Prefix='')for page in pages: for obj in page['Versions']: print(obj['Key'])
import boto3
s3 = boto3.client('s3')
paginator = s3.get_paginator('list_object_versions')
pages = paginator.paginate(Bucket='bucket_name', Prefix='')
for page in pages:
for obj in page['Versions']:
print(obj['Key'])
字符串
ssgvzors2#
import boto3# Create an S3 clients3 = boto3.client('s3')# Specify the bucket namebucket_name = 'your_bucket_name'# List all versions of objects in the bucketobject_versions = s3.list_object_versions(Bucket=bucket_name)# Print information about each version (including delete markers)for version in object_versions.get('Versions', []): print(f"Key: {version['Key']}, VersionId: {version['VersionId']}, IsDeleteMarker: False")# Print information about each delete marker (if any)for delete_marker in object_versions.get('DeleteMarkers', []): print(f"Key: {delete_marker['Key']}, VersionId: {delete_marker['VersionId']}, IsDeleteMarker: True")
# Create an S3 client
# Specify the bucket name
bucket_name = 'your_bucket_name'
# List all versions of objects in the bucket
# Print information about each version (including delete markers)
for version in object_versions.get('Versions', []):
print(f"Key: {version['Key']}, VersionId: {version['VersionId']}, IsDeleteMarker: False")
# Print information about each delete marker (if any)
for delete_marker in object_versions.get('DeleteMarkers', []):
print(f"Key: {delete_marker['Key']}, VersionId: {delete_marker['VersionId']}, IsDeleteMarker: True")
字符串此代码将打印所有版本的信息,包括版本化对象及其删除标记。
2条答案
按热度按时间5q4ezhmt1#
我发现了问题。boto 3的列表对象API只列出了有限的结果(~1000个对象)。要超出此范围,您可能需要使用paginator。
下面是一个示例代码,你可以忽略不需要的行。
字符串
ssgvzors2#
字符串
此代码将打印所有版本的信息,包括版本化对象及其删除标记。