如何从 Java 代码执行 AWS CLI 命令?

问题描述 投票:0回答:1

如何从 Java 代码执行以下命令来获取 S3 存储桶大小

aws s3api list-objects --bucket BUCKETNAME --output json --query "[sum(Contents[].Size), length(Contents[])]"

amazon-web-services amazon-s3 aws-java-sdk
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 更容易。

© www.soinside.com 2019 - 2024. All rights reserved.