我正在尝试探索是否可以在 s3 中在一秒钟内列出某些对象。我在一个桶里有大约 200,000 张照片,其中一些照片与其他照片相关:例如 6003-01.jpg 与 6003-02.jpg 相关。我正在使用此代码来提取:
s3_client = boto3.client('s3')
bucket = 'images'
prefix = 'Photo/'
paginator = s3_client.get_paginator('list_objects_v2')
response_iterator = paginator.paginate(Bucket=bucket, Prefix=prefix)
file_names = []
for response in response_iterator:
for object_data in response['Contents']:
key = object_data['Key']
if key.startswith('Photo/6003-'):
file_names.append(key)
print(file_names)
这段代码确实有效,但速度太慢了。我知道通常的方法是使用数据库,但我想看看我是否可以避免这笔费用。
你知道更快的方法吗?
是否可以通过将这些匹配的图像(6003-)放入其自己的“目录”然后返回所有这些对象的脚本使用此存储桶创建另一个存储桶 - 这会更快,因为它会搜索更小的前缀?
谢谢。