【发布时间】:2015-11-19 20:30:08
【问题描述】:
我下载了 AWS cli,并能够成功列出我的存储桶中的对象。但是从 Python 脚本做同样的事情是行不通的。错误是禁止错误。
我应该如何配置 boto 以使用相同的默认 AWS 凭证(与 AWS cli 使用的一样)
谢谢
import logging import urllib, subprocess, boto, boto.utils, boto.s3
logger = logging.getLogger("test") formatter =
logging.Formatter('%(asctime)s %(message)s') file_handler =
logging.FileHandler("test.log") file_handler.setFormatter(formatter)
stream_handler = logging.StreamHandler(sys.stderr)
logger.addHandler(file_handler) logger.addHandler(stream_handler)
logger.setLevel(logging.INFO)
# wait until user data is available while True:
logger.info('**************************** Test starts *******************************')
userData = boto.utils.get_instance_userdata()
if userData:
break
time.sleep(5)
bucketName = ''
deploymentDomainName = ''
if bucketName:
from boto.s3.key import Key
s3Conn = boto.connect_s3('us-east-1')
logger.info(s3Conn)
bucket = s3Conn.get_bucket('testbucket')
key.key = 'test.py'
key.get_contents_to_filename('test.py')
CLI 是 -->
aws s3api get-object --bucket testbucket --key test.py my.py
【问题讨论】:
-
请编辑您的问题以提供您正在使用的 cli 命令并包含您的 boto 代码。此外,包括错误输出。
-
您在同一台计算机上运行这两个命令的位置?它是分配了角色的 EC2 实例,还是通过本地文件提供的凭据?
-
是的,它是一个分配了角色的 ec2 实例。但是为什么它可以从 cli 命令行而不是 python 脚本工作。这里还有更新的python脚本和bat文件
-
哪一行产生了错误?能否请您显示错误输出。
标签: amazon-web-services aws-cli