node.js - AWS S3 nodejs - 如何通过他的前缀获取对象
问题描述
我正在搜索如何检查 nodejs 中我的 aws s3 存储桶中是否存在一个对象,而不列出我的所有对象(~1500)并检查对象的前缀,但我找不到如何。
格式是这样的:
<prefix I want to search>.<random string>/
前任:
tutturuuu.dhbsfd7z63hd7833u/
解决方案
因为您不知道整个对象 Key,所以您需要执行一个列表并按前缀过滤。AWS nodejs sdk提供了这样的方法。这是一个例子:
s3.listObjectsV2({
Bucket: 'youBucket',
MaxKeys: 1,
Prefix: 'tutturuuu.'
}, function(err, data) {
if (err) throw err;
const objectExists = data.Contents.length > 0
console.log(objectExists);
});
请注意,使用它MaxKeys
以减少网络使用量很重要。如果多个对象具有前缀,那么您将需要返回所有内容并决定您需要哪一个。
此 API 调用将仅返回元数据。获得完整密钥后,您可以使用它getObject
来检索对象内容。
推荐阅读
- vb.net - 如何允许通过类名访问实例方法?
- scala - 在 Scala 中为案例类创建伴随对象时遇到问题
- android - 如何使`this`在一个范围内引用 Kotlin Android Extension 类型类?
- android - 我使用了 distributionUrl =https\://services.gradle.org/distributions/gradle-6.1.1-all.zip 但同步后布局文件仍然丢失
- git - 将 git hub 存储库更改为主文件夹(iso 子文件夹)
- mysql - 语法不正确的 SQL 不会在 MariaDB 服务器版本中引发错误:10.1.45?
- javascript - [Vue 警告]:beforeCreate 钩子中的错误:“ReferenceError:文档未定义”
- c# - 将带有 IO 操作的无限循环转换为可观察的
- redux - 在 redux-thunk 操作后使用 axios 进行承诺
- reactjs - 需要说明:使用 useEffect 钩子从 API 获取数据并获取名称