Загрузка файла в Google Docs через скрипт Python - PullRequest
5 голосов
/ 13 июля 2011

Я пытаюсь загрузить файл резервной копии со своего сервера в хранилище Google с помощью скрипта Python.Файл резервной копии представляет собой зашифрованный zip-файл (файл gpg).Он успешно подключается, но не может передать файл, который выдает следующую ошибку:

Traceback (most recent call last):
  File "backup.py", line 37, in <module>
    entry = gd_client.Upload(ms, 'Backup.gpg', folder_or_uri=uri)
  File "/usr/local/lib/python2.6/dist-packages/gdata/docs/service.py", line 306, in Upload
    folder_or_uri)
  File "/usr/local/lib/python2.6/dist-packages/gdata/docs/service.py", line 161, in _UploadFile
    converter=gdata.docs.DocumentListEntryFromString)
  File "/usr/local/lib/python2.6/dist-packages/gdata/service.py", line 1236, in Post
    media_source=media_source, converter=converter)
  File "/usr/local/lib/python2.6/dist-packages/gdata/service.py", line 1358, in PostOrPut
    'reason': server_response.reason, 'body': result_body}
gdata.service.RequestError: {'status': 400, 'body': 'Invalid request URI', 'reason': 'Bad Request'}

Вот мой код:

import os
import sys
import gdata.docs
import gdata.docs.service
import gdata.docs.client

gd_client = gdata.docs.service.DocsService()
gd_client.ClientLogin('me@myemail.com', 'mypassword')

uri = '%s?convert=false' % gdata.docs.client.DOCLIST_FEED_URI

f = open('backup.zip.gpg')
ms = gdata.MediaSource(file_handle=f, content_type='application/octet-stream', content_length=os.path.getsize(f.name))
entry = gd_client.Upload(ms, 'Backup.gpg', folder_or_uri=uri)

Возможно, файл слишком большой (56 МБ),и я не могу использовать хранилище Документов Google таким образом.Я надеюсь на более явное сообщение об ошибке, если бы это было так.Мне интересно, если это проблема с моим высказыванием 'convert = false'.Я использую аккаунт Служб Google.

Ответы [ 2 ]

2 голосов
/ 11 октября 2011

Хорошие новости: теперь Google Apps для бесплатных учетных записей также могут загружать файлы любого типа .

Три ключевых пункта здесь:

Чтобы увидеть пример в python, пожалуйста, скачайте gdata-2.0.14 и найдите resumable_upload_sample.py в каталоге samples / docs.

2 голосов
/ 14 июля 2011

Загрузка файлов любого типа разрешена только для учетных записей Google Apps для бизнеса .Обычный аккаунт не может загрузить этот тип файла.См. эту ссылку в API Документов Google.

...