是否有任何适用于 Node.js 的 Amazon S3 客户端库允许列出 S3 存储桶中的所有文件?
原文由 nab 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用官方的 aws-sdk :
var allKeys = [];
function listAllKeys(marker, cb)
{
s3.listObjects({Bucket: s3bucket, Marker: marker}, function(err, data){
allKeys.push(data.Contents);
if(data.IsTruncated)
listAllKeys(data.NextMarker, cb);
else
cb();
});
}
编辑 2017 年:相同的基本想法,但 listObjectsV2( ... )
现在推荐并使用 ContinuationToken
(参见 s3.listObjectsV2 ):
var allKeys = [];
function listAllKeys(token, cb)
{
var opts = { Bucket: s3bucket };
if(token) opts.ContinuationToken = token;
s3.listObjectsV2(opts, function(err, data){
allKeys = allKeys.concat(data.Contents);
if(data.IsTruncated)
listAllKeys(data.NextContinuationToken, cb);
else
cb();
});
}
原文由 Meekohi 发布,翻译遵循 CC BY-SA 3.0 许可协议
3 回答2.6k 阅读✓ 已解决
1 回答944 阅读✓ 已解决
2 回答1.2k 阅读
1 回答947 阅读✓ 已解决
2 回答1.7k 阅读
2 回答626 阅读✓ 已解决
2 回答1.1k 阅读
事实上, aws2js 支持通过
s3.get()
方法调用在低级别上列出存储桶中的对象。为此,必须通过prefix
参数,该参数记录在 Amazon S3 REST API 页面上:上述代码段中的
data
变量包含bucketName
存储桶中所有对象的列表。