使用Boto3按键列表下载S3对象

2024-10-01 09:40:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个从缓存中检索的键的列表,我想从S3下载相关的对象(文件),而不必对每个键发出请求。在

假设我有以下密钥数组:

key_array = [
    '20160901_0750_7c05da39_INCIDENT_MANIFEST.json',
    '20161207_230312_ZX1G222ZS3_INCIDENT_MANIFEST.json',
    '20161211_131407_ZX1G222ZS3_INCIDENT_MANIFEST.json',
    '20161211_145342_ZX1G222ZS3_INCIDENT_MANIFEST.json',
    '20161211_170600_FA68T0303607_INCIDENT_MANIFEST.json'
]

我试图在另一个SO问题上做类似于this answer的操作,但修改如下:

^{pr2}$

我的最终目标是避免对列表中的每个键分别使用awsapi。我还希望避免将整个bucket拉下来并过滤/迭代完整的结果。在


Tags: 文件对象keyjson列表sos3密钥
1条回答
网友
1楼 · 发布于 2024-10-01 09:40:11

我认为最好的方法是调用nAPI调用,其中n是key\u数组中的键数。除了前缀之外,amazonapifors3并没有提供基于密钥的服务器端过滤。下面是在API调用中获取它的代码:

import boto3
s3 = boto3.client('s3')

for key in key_array:
    incident_body = s3.get_object(Bucket="my_incident_bucket", Key=key)['Body']

    # Do fun stuff with the incident body

相关问题 更多 >