我想在谷歌应用引擎上使用python创建一个应用来处理文件上传并将它们存储到blobstore中。
但是,目前blobstore需要使用blobstore.create_upload_url来创建文件上载表单帖子的URL。由于我是从其他服务器上传的,我的问题是,是否可以在不使用blobstore.create_upload_url的动态网址的情况下将文件上传到gae blobstore?
仅供参考,我可以在从其他服务器上传之前从python脚本请求上传URL,但这会产生额外的延迟,这不是我想要的。另外,我使用http://code.google.com/intl/en/appengine/docs/python/blobstore/overview.html#Writing_Files_to_the_Blobstore中所谓的“类文件API”来阅读,但文档似乎没有涉及上传部分。
此外,之前我曾尝试使用数据存储区进行文件上传,但最大文件大小为1MB,这对我的情况来说还不够。请指教,谢谢。
答案 0 :(得分:5)
有两种方法可以将文件写入blobstore:1)使用create_upload_url
,并发布带有文件附件的表单,2)使用API直接写入blobstore(使用解决方案{ {3}}用于大文件。)
如果您希望远程服务器能够上传,您有两个相同的选择:
1)远程服务器第一次请求URL。你有一个只返回这样一个URL的处理程序。使用此URL,远程服务器会生成正确编码的POST消息并将其发布到URL。
2)您将文件数据作为HTTP参数发送到应用引擎服务器的处理程序,该服务器使用blobstore写入API直接写入文件。请求大小为here到32MB,因此使用此方法编写的最大文件大小将略低于此。