如果需要检查多个文件,您还可以获得所有对象的列表。对于给定的存储桶运行list_objects_v2,然后遍历响应“内容”。例如:
s3_client = boto3.client('s3')
response_contents = s3_client.list_objects_v2(
Bucket='name_of_bucket'
).get('Contents')
你会得到一个这样的字典列表:
[{'Key': 'path/to/object1', 'LastModified': datetime, 'ETag': '"some etag"', 'Size': 2600, 'StorageClass': 'STANDARD'}, {'Key': 'path/to/object2', 'LastModified': 'datetime', 'ETag': '"some etag"', 'Size': 454, 'StorageClass': 'STANDARD'}, ... ]
请注意,列表中的每个字典都包含“Size”键,即您的特定对象的大小。它是可迭代的
for rc in response_contents:
if rc.get('Key') == 'path/to/file':
print(f"Size: {rc.get('Size')}")
您可以获得所有您可能感兴趣的文件的大小:
Size: 2600
Size: 454
Size: 2600
...