我真的很惊讶,没有简单的方法可以通过aws-sdk
节点包扫描S3中的所有文件,并通过他的名字或正则表达式来查找某些文件。
以下是文件夹结构的示例:
- mainDirectory
- directoryOne
(...)
- file1.png
- file2.png
(...)
- directoryTwo
(...)
- file11.png
- file22.png
( ...)
- directoryThree
(...)
- file111.png
- file222.png
(...)
是否可以使用Delimiter
或Prefix
来列出每个名为file(...)
的目录中的文件?
试过这个:
const params = {
Bucket: process.env.AWS_S3_BUCKET,
Delimiter: '/',
Prefix: 'file'
};
答案 0 :(得分:1)
否,list api中的前缀用于匹配对象键,而不是相对于键的一部分。
如果您有大量对象,而时间对您而言并不重要,那么我建议您设置S3库存以生成每日库存报告。然后,您可以使用Athena进行一些SQL查询来处理它。
如果需要进行扫描并实时获取对象,我建议还将对象密钥保存到其他数据结构中以进行快速查询。