获取对象列表

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 用于在某一个具体的键名后列出对象,可指定存储桶中的任一个键名