【发布时间】:2012-09-21 19:55:41
【问题描述】:
我需要在 GAE 应用程序上将文件/文档上传到 Google Docs。这应该很简单,但我在使用 API 时遇到了很多麻烦。
上下文:
import gdata.docs.service
client = gdata.docs.service.DocsService()
client.ClientLogin('gmail', 'pass')
ms = gdata.MediaSource(#what goes in here?)
client.Upload(media_source=ms, title='title')
要上传,我使用的是client.Upload(),它将 MediaSource(包装器)对象作为参数。但是,MediaSource() 似乎只接受文档的文件路径:'C:/Docs/ex.doc'。
由于我在没有文件系统的 GAE 上,我只能通过 Blobstore 或文件的直接 URL 访问该文件。但是如何将其输入到MediaSource()?
似乎有一个 way in Java 可以通过使用 MediaByteArraySource() 来完成此操作,但对于 Python 则没有。
【问题讨论】:
-
MediaIoBaseUpload 的Google APIs Client Library for Python 似乎能够从流中执行上传。
-
嗯,这如何与 gdata 模块一起使用?这似乎完全分开。
-
我相信这是目前推荐用于访问 Google API 的 Python 模块,如您所见 here。
-
我认为你现在应该使用 Google Drive APIs
-
Drive API 与文件类型无关。如果 (a) 源文件具有可识别的、兼容的 mime 类型(例如“text/html”)并且使用“convert=true”完成上传,则结果将是 Gdocs 文件。
标签: python google-app-engine google-drive-api google-docs-api