Google App Engine上的SSLError(本地开发服务器)

时间:2011-09-05 12:37:45

标签: python google-app-engine amazon-s3 boto

当我尝试在App Engine上使用boto库时,我收到下一个错误:

Traceback (most recent call last):
  File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\_webapp25.py", line 701, in __call__
    handler.get(*groups)
  File "E:\Probes\pruebas\pruebasAWS\main.py", line 26, in get
    conn = S3Connection('<KEY1>','<KEY2>')
  File "E:\Probes\pruebas\pruebasAWS\boto\s3\connection.py", line 148, in __init__
    path=path, provider=provider)
  File "E:\Probes\pruebas\pruebasAWS\boto\connection.py", line 231, in __init__
    self.http_unretryable_exceptions.append(ssl.SSLError)
AttributeError: 'module' object has no attribute 'SSLError'

我已经安装了OpenSSL和Python 2.7。用于python的OpenSSL和SSL库正在运行,当我将应用程序部署到Google Infrastructure时,它运行正常。当我尝试在本地计算机上执行应用程序时出现问题。

代码是:

from google.appengine.ext import webapp
from google.appengine.ext.webapp import util
from boto.s3.connection import S3Connection
import hashlib


class MainHandler(webapp.RequestHandler):
    def get(self):
        conn = S3Connection('<KEY1>','<KEY2>')
        bucket = conn.create_bucket(hashlib.md5('noTRePeaTedBuCket').hexdigest()+"probe")
        if bucket:
            self.response.out.write('Bucket creado')
        else:
            self.response.out.write('Bucket NO creado')

1 个答案:

答案 0 :(得分:2)

这里的实际问题是AppEngine可以解决问题,导致无法导入某些标准的内置python模块,例如ssl。

在boto IRC上有一些关于此的讨论,其中一位用户想出了这个补丁:

https://github.com/samba/boto/commit/6f1ab73d92ff6fb2589362bbdadf6bbe66811e7e

很快就会将某种形式合并到boto master中。