2016-06-04 5 views
0

Как я могу выполнить следующие из Java кода, чтобы получить размер ковша S3 aws s3api list-objects --bucket BUCKETNAME --output json --query "[sum(Contents[].Size), length(Contents[])]"Как выполнить команды AWS CLI из Java-кода?

+3

Java runtime позволяет вам использовать cmds, но почему бы не использовать aws SDK? – Shibashis

ответ

0

класс ProcessBuilder Java может называть AWS CLI из Java довольно легко:

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/"); 

Вы могли бы повезти с API Cloudwatch, он обеспечивает общее ведро размеры через CLI ап d SDK BucketSizeBytes. http://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html

Я использую http://www.insight4storage.com/ с сайта AWS Marketplace, чтобы отслеживать тенденции использования памяти AWS S3 с помощью префикса, ведра или класса хранения с течением времени. Это проще, чем CLI или SDK.

Смежные вопросы