获取对象列表
list_objects操作用于列出存储桶中的全部对象,该操作返回最多1000个对象信息,可以通过设置过滤条件来列出存储桶中符合特定条件的对象信息。
def list_objects(self):
print('list_objects')
response = self.s3_client.list_objects(
Bucket=self.bucket,
MaxKeys=50, # list up to 50 key at a time
)
for obj in response['Contents']:
print(obj["Key"])
如果 list 大于1000,则返回的结果中 isTruncated 为true,通过Marker参数可以指定下次读取的起点。列举所有对象的示例代码如下:
def list_objects2(self):
print('list_objects')
objects = []
response = self.s3_client.list_objects(
Bucket=self.bucket,
MaxKeys=100,
)
objects.extend(response['Contents'])
while response['IsTruncated']:
response = self.s3_client.list_objects(
Bucket=self.bucket,
MaxKeys=100,
Marker=response['Contents'][-1]['Key']
)
objects.extend(response['Contents'])
for obj in objects:
print(obj["Key"])
以下为__list_objects__的部分参数说明:
参数 | 类型 | 说明 | 是否必要 |
---|---|---|---|
Bucket | string | 要列出的存储桶名称 | 是 |
MaxKeys | integer | 设置响应中返回的最大键数。默认值和可设置最大值均为1000 | 否 |
Prefix | string | 指定列出对象的键名需要包含的前缀 | 否 |
Marker | string | 用于在某一个具体的键名后列出对象,可指定存储桶中的任一个键名 | 否 |