【问题标题】:Iterate through S3 folder and compare images inside that folder?遍历 S3 文件夹并比较该文件夹中的图像?
【发布时间】:2019-04-18 04:11:29
【问题描述】:

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

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

【问题讨论】:

    标签: python amazon-s3 aws-lambda


    【解决方案1】:

    Boto3 是用于 python 的官方 aws sdk。你会想做这样的事情:

    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)
    
    

    然后您就可以运行图像比较了。

    【讨论】:

      【解决方案2】:

      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']
      

      【讨论】:

        猜你喜欢
        • 2021-08-05
        • 1970-01-01
        • 2017-07-18
        • 1970-01-01
        • 2023-03-03
        • 2017-04-03
        • 1970-01-01
        • 1970-01-01
        • 2022-11-26
        相关资源
        最近更新 更多