SSLError в Google App Engine (локальный dev-сервер) - PullRequest
2 голосов
/ 05 сентября 2011

Когда я пытаюсь использовать библиотеку boto в App Engine, я получаю следующую ошибку:

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. Работают библиотеки OpenSSL и SSL для python, и когда я развертываю приложение в инфраструктуре Google, оно работает нормально Проблема возникает, когда я пытаюсь запустить приложение на локальном компьютере.

Код:

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 Ответ

2 голосов
/ 09 сентября 2011

Фактическая проблема здесь в том, что AppEngine работает с вещами, которые делают невозможным импорт определенных стандартных встроенных модулей Python, таких как ssl.

Был некоторый разговор об этом на IRC boto, и один из пользователей предложил этот патч:

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

Некоторая форма этого, вероятно, скоро будет объединена с Бото-мастером.

...