如何使用Google App Engine Blobstore保存Web图像

时间:2010-12-30 17:09:13

标签: python google-app-engine blobstore

更新

这个问题最初是在不支持程序化文件创建的时候提出的(例如通过网址)。情况发生了变化,请参阅:http://code.google.com/appengine/docs/java/blobstore/overview.html#Writing_Files_to_the_Blobstore

我正在访问几个不同的API来获取图像。我的应用程序是GAE + Python,我想使用Blobstore来保存这些图像。 GAE Blobstore文档提供了如何通过表单将图像保存到Blobstore的明确示例,但不直接来自网址。

http://code.google.com/intl/iw/appengine/docs/python/blobstore/overview.html#Writing_Files_to_the_Blobstore

我想知道如何将http://api.website.com/images/foo.jpg保存到Blobstore。

3 个答案:

答案 0 :(得分:2)

HTTP POST到您自己的表单工作。我没有尝试提交文件,但这是我提交表单的方式。您可以从互联网上获取该文件,将其添加到表单提交中,该文件将存储在您的blobstore中。

import urllib
data = urllib.urlencode({"id":str(id), "password" : self.request.POST['passwd'], "edit" : "edit"})
result = urlfetch.fetch(url="http://www.montao.com.br/upload",
payload=data,
method=urlfetch.POST,
headers={'Content-Type': 'application/x-www-form-urlencoded'})

还有类似问题已回答here

我希望它适合你。

答案 1 :(得分:2)

将新的File API与urlfetch API结合使用,您应该能够通过表单传递图像URL,将其提取到服务器端并将其写入blobstore:

http://code.google.com/intl/iw/appengine/docs/python/blobstore/overview.html#Writing_Files_to_the_Blobstore

答案 2 :(得分:0)

您可以编写一个额外的处理程序,将输入网址的内容上传到blob存储处理程序。即自动化表单提交过程。向blob存储处理程序发出POST请求,url对图像进行编码。

但唯一的问题是如果文件太大,那么你可能会遇到超时异常。

相关问题