ユーザーがアップロードしたブロブストアに画像があります(プロフィール写真)。同じもののコピーを作成し、コピーのサイズを変更して、サムネイルとして表示できるようにしたいと考えています。これはプロファイル画像と比較してより頻繁に使用されるため、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.
これは、ブロブがデータストアに保存(put())されていないためだと思いますが、どうすればよいですか。しませfiles.blobstore.get_blob_key(file_name)
んでしたか?
また、お聞きしたいのですが、ブロブストアは get_serving_url() を使用して提供される動的に変換された画像をキャッシュしますか ...