簡體   English   中英

通過 Python 腳本將文件上傳到谷歌文檔

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM