无法读取实例数据,放弃python boto中的错误

时间:2014-01-23 11:24:14

标签: python-2.7 boto

我正在尝试使用boto库访问amazon s3以访问amazon'aws-publicdatasets'中可用的常见爬网数据。

我在〜/ .boto

中创建了访问配置文件
[Credentials]
aws_access_key_id = "my key"
aws_secret_access_key = "my_secret"

在创建与amazon s3的连接时,我在日志中看到以下错误。

2014-01-23 16:28:16,318 boto [DEBUG]:Retrieving credentials from metadata server.
2014-01-23 16:28:17,321 boto [ERROR]:Caught exception reading instance data
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/boto-2.13.3-py2.6.egg/boto/utils.py", line 211, in retry_url
    r = opener.open(req)
  File "/usr/lib64/python2.6/urllib2.py", line 391, in open
    response = self._open(req, data)
  File "/usr/lib64/python2.6/urllib2.py", line 409, in _open
    '_open', req)
  File "/usr/lib64/python2.6/urllib2.py", line 369, in _call_chain
    result = func(*args)
  File "/usr/lib64/python2.6/urllib2.py", line 1190, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "/usr/lib64/python2.6/urllib2.py", line 1165, in do_open
    raise URLError(err)
URLError: <urlopen error timed out>
2014-01-23 16:28:17,323 boto [ERROR]:Unable to read instance data, giving up

另一方面,我尝试在创建连接对象时提供凭据,如下所示

from boto.s3.connection import S3Connection
from boto.s3.bucket import Bucket
boto.set_stream_logger('boto')
connection = S3Connection('______','__________')    
bucket = Bucket(connection.get_bucket('aws-publicdatasets'))

我仍然在日志中看到相同的错误

3 个答案:

答案 0 :(得分:1)

在脚本所在的文件夹中使用.boto文件时出现了同样的错误。它必须位于主文件夹的基础上。

答案 1 :(得分:-1)

你可以试试以下,它的工作对我来说


from boto.api import env
env.aws_access_key_id = boto.config.get("Credentials", "aws_access_key_id")
env.aws_secret_access_key = boto.config.get("Credentials", "aws_secret_access_key")

答案 2 :(得分:-1)

我认为这与#1054的问题相同。

您可以在settings.py中添加以下代码以禁用S3处理程序:

DOWNLOAD_HANDLERS: {'s3': None}

这适合我。