![](/img/trans.png)
[英]How to download multiple files having same prefix as filename from various folders of S3 bucket?
[英]Fetching multiple objects with same prefix from s3 bucket
我在 s3 存储桶中有多个文件夹,每个文件夹都包含一些.txt
文件。 现在我想使用 javascript API 从给定文件夹中仅获取 10 个.txt
文件。 例如:路径是这样的
s3bucket/folder1/folder2/folder3/id
现在文件夹id
是包含多个 .txt 文件的文件夹。 folder3 中有多个id
文件夹。 我想传递id
并获取 10 个以id
为前缀的 s3 对象。 这可以使用 listObjectsV2 吗? 如何将响应限制为仅 10 个对象。
____obj1.txt
______id1----|____obj2.txt
| _____obj3.txt
|_____ id2---|____obj4.txt
s3bucket/folder1/folder2/folder3-| ____obj5.txt
|_____ id3---|____obj6.txt
所以如果我通过
var params= {Bucket:"s3bucket",Key:"folder1/folder2/folder3/id1"}
我应该得到obj1.txt
和obj2.txt
作为回应。
您使用的是哪种S3方法? 我建议使用listObjectsV2
来实现您的目标。 可能的调用可能如下所示
const s3 = new AWS.S3();
const { Contents } = await s3.listObjectsV2({
Bucket: 's3bucket',
Prefix: 'folder1/folder2/folder3/id1',
MaxKeys: 10
}).promise();
要获取 object 值,您需要在每个Key
上调用getObject
。
const responses = await Promise.all((Contents || []).map(({ Key }) => (
s3.getObject({
Bucket: 's3bucket',
Key
}).promise()
)));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.