遍历S3文件夹并比较该文件夹中的图像?

时间:2019-04-17 19:20:00

标签: python amazon-s3 aws-lambda

您好,我在s3中有一个存储桶,其中包含一个文件夹,该文件夹包含需要迭代的图像。在遍历每幅图像时,我需要将迭代后的图像与另一幅图像进行比较以显示相似性。

我将如何遍历存储桶文件夹中的文件?我已经写了一种方法来比较只需要遍历文件夹的图像。

2 个答案:

答案 0 :(得分:1)

Boto3是python的官方AWS开发工具包。您可能想要执行以下操作:

import boto3
s3 = boto3.resource(service_name='s3', aws_access_key_id=XXXXXXXXXXX, aws_secret_access_key=XXXXXXXXX)
bucket = s3.Bucket(BUCKET_NAME_AS_STRING)
for obj in bucket.objects.all():
    #if you need to download image for comparison
    bucket.download_file(obj.key, LOCAL_FILE_PATH_DESTINATION)

然后您可以进行图像比较。

答案 1 :(得分:0)

s3fs是一个很好的库,可让您轻松做到这一点

使用您的参数创建一个S3FileSystem对象,然后可以使用s3://<bucket>/<key>路径调用ls()或glob()并遍历结果。 有关更具体的示例,请查看其documentations 这是一个基本示例:

>>> import s3fs
>>> fs = s3fs.S3FileSystem(anon=True)
>>> fs.ls('my-bucket')
['my-file.txt', 'another-file.txt']