如何使用boto3迭代S3存储桶?

时间:2016-06-18 18:52:37

标签: python amazon-web-services amazon-s3 boto boto3

我正在尝试训练一个神经网络,我传递了一系列图像。我想创建一个生成器,将每个图像作为一个numpy数组传递

from skimage import io
image_array = io.imread(url)

但这仅适用于特定的亚马逊aws网址。我知道使用boto库的标准方法是这样的:

s3 = boto3.resource('s3')
s3.meta.client.download_file('mybucket', 'hello.txt', '/tmp/hello.txt') 

但在这里,似乎你指向一个特定的资源

我想要这样的事情:

def my_generator():
    for object in s3_bucket():     # does an s3_bucket() iterator like this exist?
        image_array = io.imread(object)
        yield image_array

我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

for key in bucket.objects.all():
    print(key.key)