我想创建一个应用程序使用谷歌应用程序引擎上的python来处理文件上传和存储到blobstore中。
然而,目前的blobstore需要使用blobstore.create_upload_url来创建文件上传表单post的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上读到使用所谓的“类似文件的应用程序接口”,但文档似乎没有涵盖上传的部分。
另外,之前我尝试使用数据存储来上传文件,但最大文件大小是1MB,这对我的情况来说是不够的。请多多指教,谢谢。
发布于 2012-02-14 12:30:28
有两种方法可以将文件写入blobstore: 1)使用create_upload_url,并发布一个带有文件附件的表单;2)直接使用API (对于大文件使用解决方案here )写入blobstore。
如果您希望远程服务器能够上传,您有两个相同的选择:
1)远程服务器首先请求URL。您有一个处理程序,它只是返回这样一个URL。通过此URL,远程服务器可以手工创建正确编码的POST消息,并将其发布到该URL。
2)将文件数据作为HTTP参数发送给应用程序引擎服务器的处理程序,该处理程序使用blobstore write API直接写入文件。请求大小为limited到32MB,因此使用此方法可以写入的最大文件大小将略低于该大小。
https://stackoverflow.com/questions/9271436
复制相似问题