如何获取图像并保存到 blobstore?
问题描述:
我想从另一个站点获取图像 (~250Kb) 并将它们保存到 blobstore.由于其配额(5Gb 免费)与数据存储(1Gb 免费),我想使用 Blobstore.我该怎么做?
I would like to fetch images (~250Kb) from another site and save them to blobstore. I would like to use Blobstore due to its quota (5Gb free) vs datastore (1Gb free). How can I do it?
GAE 文档说我应该创建上传表单以使用我不需要的 blobstore.
GAE docs say that I should create upload form to use blobstore, which I don't need.
答
我认为这段代码会起作用:
I think this code will work:
from __future__ import with_statement # first line of your code
....
from google.appengine.api import urlfetch
import mimetypes
from google.appengine.api import files
.....
image_name = 'your_image.png'
response = urlfetch.fetch('http://....../' + image_name) # response.status_code == 200
(mimetype, _) = mimetypes.guess_type(image_name)
file_name = files.blobstore.create(mime_type= mimetype, _blobinfo_uploaded_filename= image_name))
with files.open(file_name, 'a') as f:
f.write(response.content)
files.finalize(file_name)
blob_key = files.blobstore.get_blob_key(file_name)