【问题标题】:Uploading to Blobstore without using blobstore.create_upload_url不使用 blobstore.create_upload_url 上传到 Blobstore
【发布时间】:2012-03-05 11:58:51
【问题描述】:

我想在谷歌应用引擎上使用 python 创建一个应用来处理文件上传并将它们存储到 blobstore 中。

但是,目前 blobstore 需要使用 blobstore.create_upload_url 来创建文件上传表单帖子的 url。由于我是从另一台服务器上传,我的问题是,是否可以在不使用 blobstore.create_upload_url 的动态 url 的情况下将文件上传到 gae blobstore?

仅供参考,我可以在从另一台服务器上传之前从 python 脚本请求上传 URL,但这会产生额外的延迟,这不是我想要的。此外,我使用http://code.google.com/intl/en/appengine/docs/python/blobstore/overview.html#Writing_Files_to_the_Blobstore 中所谓的“类文件 API”阅读了该内容,但文档似乎并未涵盖上传部分。

另外,之前我尝试使用数据存储进行文件上传,但最大文件大小为 1MB,这对于我的情况来说是不够的。请多多指教,谢谢。

【问题讨论】:

    标签: python google-app-engine file-upload blobstore


    【解决方案1】:

    将文件写入 blobstore 有两种方法:1) 使用 create_upload_url,并发布带有文件附件的表单,2) 使用 API 直接写入 blobstore(使用解决方案 here对于大文件)。

    如果您希望远程服务器能够上传,您有相同的两个选择:

    1) 远程服务器首先请求一个 URL。你有一个只是返回这样一个 URL 的处理程序。使用此 URL,远程服务器会制作一个正确编码的 POST 消息并将其发布到该 URL。

    2) 您将文件数据作为 HTTP 参数发送到应用引擎服务器的处理程序,该服务器使用 blobstore 写入 API 然后直接写入文件。请求大小为limited 到 32MB,因此您可以使用此方法写入的最大文件大小会略低于该值。

    【讨论】:

    • 但是,如果我使用方法 2,上传的大小限制是多少?
    • 已更新方法 #2 的限制。
    猜你喜欢
    • 1970-01-01
    • 2011-09-19
    • 2012-03-20
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多