【发布时间】:2020-06-16 23:26:06
【问题描述】:
我想知道使用AWS-SDK 存储在 S3 中的文件夹的总大小。
注意:-
我不想使用任何命令或 AWS 控制台来查找我的 我想通过 aws-sdk 执行此操作的文件夹,我在上面提到过 请不要将此标记为重复。
到目前为止,我在互联网上找到的是列出文件夹的所有对象并迭代抛出它,我这样做了,它工作正常。 这是我的代码:-
import AWS from 'aws-sdk';
AWS.config.region = "BUCKET_REGION";
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: "COGNITO_ID",
});
let bucketName = "BUCKET_NAME"
let bucket = new AWS.S3({
params: {
Bucket: bucketName
}
});
bucket.listObjects({Prefix:"FOLDER_NAME",Bucket:"BUCKET_NAME"}, function (err, data) {
if (err) {
console.log(err)
} else {
console.log(data)
//data returns the array throw which I iterate and find the total size of the object
}
});
但问题在于,有时我的文件夹包含如此多的对象,以至于难以迭代列表中的每个元素。仅计算文件夹的大小需要很长时间。
所以我需要一种更好的方法来计算文件夹的大小,我发现的只是这个命令
aws s3 ls s3://myBucket/level1/level2/ --recursive --summarize | awk 'BEGIN{ FS= " "} /Total Size/ {print $3}'
我有什么办法可以完成上述过程,扔掉我的 aws-sdk。
感谢任何形式的帮助。在此先感谢
【问题讨论】:
-
如果 python 是一个选项:stackoverflow.com/a/58220730/9931092
-
这实际上和我正在做的一样它迭代抛出我不想做的文件夹的所有对象。
-
哦抱歉我刚才注意到了..
-
好的没问题,如果有其他方法可以告诉我
-
您需要一次性操作还是定期操作?
标签: amazon-web-services amazon-s3 aws-sdk nodes