Запись файлов в учетную запись Dropbox из GAE

Я пытаюсь создать файлы в папке Dropbox.com из приложения GAE. Я выполнил все шаги по регистрации приложения Dropbox и установил Python SDK из Dropbox локально на моем компьютере для разработки. (см. API dropbox.com). Все работает отлично, когда я использую тестовый скрипт cli_client.py в SDK dropbox на моем локальном компьютере для доступа к Dropbox - могу «помещать» файлы и т. Д.

Теперь я хочу начать работать в среде GAE, так что все немного сложный. Некоторая помощь была бы полезна.

Для тех, кто знаком с кодом API Dropbox, у меня были следующие проблемы:

Проблема 1

Модуль rest.py Dropbox API использует pkg_resources для установки сертификатов в пакеты сайтов на локальном компьютере. установка. Я заменил

TRUSTED_CERT_FILE = pkg_resources.resource_filename(__name__, 'trusted-certs.crt')

на

TRUSTED_CERT_FILE = file('trusted-certs.crt')

и поместил файл сертификата в каталог своего приложения GAE. Возможно, это не совсем так; см. мой код ошибки аутентификации ниже.

Проблема 2

Модуль API Dropbox session.py использует модуль oauth , поэтому я изменил включение на appengine oauth.

Но возникло исключение, что в oauth GAE нет метода OAuthConsumer , используемого модулем Dropbox session.py. Итак, я загрузил oauth 1.0 и добавил в свое приложение, чтобы импортировать его вместо GAE oauth.

Проблема 3

SSL-модуль GAE не имеет свойства CERT_REQUIRED.

Это константа, поэтому я изменил

self.cert_reqs = ssl.CERT_REQUIRED

на

self.cert_reqs = 2

Это используется при вызове

ssl.wrap_socket(sock, cert_reqs=self.cert_reqs, ca_certs=self.ca_certs)

Ошибка аутентификации

Но я все еще не могу подключиться к Dropbox:

Status: 401
Reason: Unauthorized
Body: {"error": "Authentication failed"}
Headers: [('date', 'Sun, 19 Feb 2012 15:11:12 GMT'), ('transfer-encoding', 'chunked'), ('connection', 'keep-alive'), ('content-type', 'application/json'), ('server', 'dbws')]
16
задан erickCo 19 February 2012 в 15:50
поделиться