如何从 Java 代码执行以下命令以获取 S3 存储桶大小
aws s3api list-objects --bucket BUCKETNAME --output json --query "[sum(Contents[].Size), length(Contents[])]"
问问题
5680 次
1 回答
0
Java 的 ProcessBuilder 类可以很容易地从 Java 调用 AWS CLI:
ProcessBuilder pb = new ProcessBuilder( yourCliCommandWithArgs );
Process process = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
... then consume the CLI output as input.
我会使用 AWS Java SDK,而列出一条路径的对象的等价物是
ListVersionsRequest listVersionsRequest = new ListVersionsRequest()
.withBucketName( yourBucketName )
.withDelimiter( pathDelimiter ).withPrefix( "your/path/" );
您可能对 Cloudwatch API 有更好的运气,它通过 CLI 和 SDK BucketSizeBytes 提供总存储桶大小。http://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html
我使用来自 AWS Marketplace 的http://www.insight4storage.com/按前缀、存储桶或存储类别跟踪我的 AWS S3 存储使用趋势。它比 CLI 或 SDK 更容易。
于 2016-06-05T03:15:08.777 回答