0

如何从 Java 代码执行以下命令以获取 S3 存储桶大小 aws s3api list-objects --bucket BUCKETNAME --output json --query "[sum(Contents[].Size), length(Contents[])]"

4

1 回答 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 回答