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
        (...)

是否有任何选项可以使用 DelimiterPrefix 来列出每个名为 file(...) 的目录中的文件?

试过这个:

const params = {
    Bucket: process.env.AWS_S3_BUCKET,
    Delimiter: '/',
    Prefix: 'file'
};

不,list api中的前缀用于从头开始匹配对象键,而不是相对于键的一部分。

如果您有大量对象并且时间对您来说并不重要,那么我建议设置 S3 清单以生成每日清单报告。然后您可以使用 Athena 和一些 SQL 查询来处理它。

如果需要实时扫描获取对象,我建议也将对象键保存到其他数据结构中,以便快速查询。