我正在尝试运行这个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脚本由同一台机器上的同一用户调用。是什么给了什么?
答案 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'])