【问题标题】:how to execute AWS CLI commands from Java code?如何从 Java 代码执行 AWS CLI 命令?
【发布时间】:2016-06-04 10:43:36
【问题描述】:

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

【问题讨论】:

  • Java 运行时允许您使用 cmds 但为什么不使用 aws SDK?

标签: amazon-web-services amazon-s3 aws-java-sdk


【解决方案1】:

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 开发工具包,而为一条路径列出对象的等价物是

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 更容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-08
    • 2017-08-08
    • 2021-01-11
    • 2020-04-20
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 1970-01-01
    相关资源
    最近更新 更多