首页 > 解决方案 > AWS S3 按名称查找文件

问题描述

我真的很惊讶没有简单的方法可以通过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'
};

标签: node.jsamazon-web-servicesamazon-s3aws-sdkaws-sdk-nodejs

解决方案


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

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

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


推荐阅读