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



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

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

使用python:

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

但是它失败了,出现了这个错误:

subprocess.CalledProcessError: Command 'aws s3 ls s3://path/to/my/bucket/12434 --recursive --human-readable --summarize' returned non-zero exit status 1

当我运行命令时,命令本身可以工作。python脚本由同一台机器上的同一用户调用。到底发生了什么事?

根据其他人的建议,使用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'])

Python 3.5新增功能,您还可以使用subprocess.run()

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

相关内容

  • 没有找到相关文章

最新更新