您好,我在s3中有一个存储桶,其中包含一个文件夹,该文件夹包含需要迭代的图像。在遍历每幅图像时,我需要将迭代后的图像与另一幅图像进行比较以显示相似性。
我将如何遍历存储桶文件夹中的文件?我已经写了一种方法来比较只需要遍历文件夹的图像。
答案 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']