node.js - AWS S3 按名称查找文件
问题描述
我真的很惊讶没有简单的方法可以通过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 查询来处理它。
如果您需要实时扫描并获取对象,我建议您还将对象键保存到其他数据结构中以进行快速查询。
推荐阅读
- flutter - 支持排队和多个播放列表的应用程序的 audio_service 和 just_audio 设计
- json - 使用 jq 将 JSON 解析为数组 - bash
- javascript - CodeMirror 同步活动行
- javascript - 解析带有变量的 JSON 返回时遇到问题
- ios - 如何使用 admin.messaging().sendToDevice(registrationToken, payloadIos) 从 firebase 函数向 iOS 应用发送通知?
- templates - 在 debug=False 模式下使用 BrowsableAPIRenderer
- javascript - 使用 JS 或 Regex 拆分具有多个特殊字符的字符串
- node.js - 授权规则:如何只允许以间接方式访问资源?
- azure - Azure Monitor - 除非创建门户,否则不会触发 Terraform 警报
- python - 如何在加速度计中有一个好的频率?