从本地python脚本运行AWS cli命令?

时间:2016-10-25 17:16:35

标签: python amazon-web-services amazon-s3 aws-cli

我正在尝试运行这个aws s3 ls命令:

e820 type = 2

使用这个python:

aws s3 ls s3://path/to/my/bucket/12434 --recursive --human-readable --summarize

但它失败了这个错误:

command = 'aws s3 ls s3://path/to/my/bucket/12434 --recursive --human-readable --summarize'
s3_folder_data  = subprocess.check_output(command, stderr=subprocess.STDOUT, shell=True)
print s3_folder_data

命令本身在我运行时有效。 python脚本由同一台机器上的同一用户调用。是什么给了什么?

2 个答案:

答案 0 :(得分:3)

正如其他人所建议的那样,使用Boto3 S3库来获得您想要的内容。但如果你坚持subprocess,请尝试:

subprocess.check_output(['aws', 's3', 'ls', 's3://path/to/my/bucket/12434', '--recursive', '--human-readable', '--summarize'])

subprocess.call(['aws', 's3', 'ls', 's3://path/to/my/bucket/12434', '--recursive', '--human-readable', '--summarize'])

并以此为基础。

答案 1 :(得分:1)

Python 3.5中的新功能,您也可以使用create a policy in Stackdriver

subprocess.run(['aws', 's3', 'ls', 's3://path/to/my/bucket/12434', '--recursive', '--human-readable', '--summarize'])