[英]Uploading a file to google docs via a Python script
我正在尝试使用 Python 脚本将备份文件从我的服务器上传到我的 Google 存储。 备份文件是一个加密的 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)
文件可能太大(56mb),我不能以这种方式使用 Google Docs 存储。 如果是这种情况,我希望有更明确的错误消息。 我想知道我说的“convert=false”是否有问题。 这是我正在使用的 Google Apps 帐户。
只有 Google Apps for Business帐户才允许上传任何类型的文件。 普通帐户无法上传此文件类型。 请参阅 Google 文档 API 中的此链接。
好消息:现在 Google Apps for Free帐户也可以上传任何类型的文件。
这里的三个关键点:
要查看 python 中的示例,请 go 下载 gdata-2.0.14 并在目录 samples/docs 下找到 resumable_upload_sample.py。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.