是否有任何适用于 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 许可协议
5 回答4.8k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
5 回答1.9k 阅读
2 回答1.4k 阅读✓ 已解决
3 回答2k 阅读
1 回答3.3k 阅读
事实上, aws2js 支持通过
s3.get()
方法调用在低级别上列出存储桶中的对象。为此,必须通过prefix
参数,该参数记录在 Amazon S3 REST API 页面上:上述代码段中的
data
变量包含bucketName
存储桶中所有对象的列表。