使用Drive SDK使用Python将Appengine blobstore中的大blob上传到Google Drive

时间:2014-06-03 09:35:23

标签: python google-app-engine google-drive-api

Python Drive API需要一个“本地文件”来执行可恢复的文件上传到Google云端硬盘,如何使用只有blob且无法访问本地文件系统的Google Appengine来完成此操作。

在旧的doclist API(现已弃用)下,您可以使用以下代码将文件从Google Appengine blobstore上传到Google云端硬盘:

    CHUNK_SIZE = 524288 
    uploader = gdata.client.ResumableUploader(
    client, blob_info.open(), blob_info.content_type, blob_info.size,  chunk_size=CHUNK_SIZE, desired_class=gdata.docs.data.DocsEntry)

关键部分是使用blob_info.open()而不是提供对本地文件的引用。

我们如何使用新的Drive API实现相同目标?

请注意文件相当大,因此需要可恢复的上传,我也知道这可以用Java完成,但我正在寻找Python解决方案。

非常感谢, 伊恩。

1 个答案:

答案 0 :(得分:0)

看起来您正在使用旧的GData客户端库和Documents List API。如果您使用新的Drive SDK和Google API Python客户端库,则可以使用MediaIoBaseUpload类从内存而不是文件创建媒体上传对象。