我在 blob 商店中有一张由用户上传的图片(他们的个人资料图片)。我想制作一个相同的副本并重新调整副本的大小,以便它可以显示为缩略图。我想制作相同的副本而不是使用 ImageService,因为与配置文件图像相比,它会更频繁地使用。
我在这里做的是:
reader = profile_image.open() #get binary data from blob
data = reader.read()
file_name = files.blobstore.create(mime_type=profile_image.content_type)#file to write to
with files.open(file_name, 'a') as f:
f.write(data)
files.finalize(file_name)
blob_key = files.blobstore.get_blob_key(file_name)
image = images.Image(blob_key = blob_key)
image.resize(width=32, height=32)
entity.small_profile_pic = <MyImageModel>(caption=<caption given by user>,
picture=str(blob_key))
这给了我错误:
BadValueError: Image instance must have a complete key before it can be stored as a reference.
我认为这是因为 blob 没有保存(put())到数据存储中,但我该怎么做。没有files.blobstore.get_blob_key(file_name)
做吗?
我还想问一下:blobstore 是否还缓存使用 get_serving_url() 提供的动态转换的图像图像...