AWS S3 按名称查找文件
AWS S3 find files by name
我真的很惊讶没有简单的方法通过 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'
};
不,list api中的前缀用于从头开始匹配对象键,而不是相对于键的一部分。
如果您有大量对象并且时间对您来说并不重要,那么我建议设置 S3 清单以生成每日清单报告。然后您可以使用 Athena 和一些 SQL 查询来处理它。
如果需要实时扫描获取对象,我建议也将对象键保存到其他数据结构中,以便快速查询。
我真的很惊讶没有简单的方法通过 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'
};
不,list api中的前缀用于从头开始匹配对象键,而不是相对于键的一部分。
如果您有大量对象并且时间对您来说并不重要,那么我建议设置 S3 清单以生成每日清单报告。然后您可以使用 Athena 和一些 SQL 查询来处理它。
如果需要实时扫描获取对象,我建议也将对象键保存到其他数据结构中,以便快速查询。