アップロードした画像を gridfs (mongodb) に保存します。したがって、画像データが通常のファイルシステムに保存されることはありません。これは、次のコードを使用して機能します。
import pymongo
import gridfs
conn = pymongo.Connection()
db = conn.my_gridfs_db
fs = gridfs.GridFS(db)
...
with fs.new_file(
filename = 'my-filename-1.png',
) as fp:
fp.write(image_data_as_string)
その画像のサムネイルも保存したいと思います。どのライブラリを使用するかは気にしません。PIL、Pillow、sorl-thumnail など、最適なものは何でもうまくいきます。
ファイルを一時的にファイル システムに保存せずにサムネイルを生成する方法があるかどうかを知りたいです。それははるかにきれいで、オーバーヘッドが少なくなります。インメモリサムネイルジェネレーターはありますか?
アップデート
サムネイルを保存する私の解決策:
from PIL import Image, ImageOps
content = cStringIO.StringIO()
content(icon)
image = Image.open(content)
temp_content = cStringIO.StringIO()
thumb = ImageOps.fit(image, (width, height), Image.ANTIALIAS)
thumb.save(temp_content, format='png')
temp_content.seek(0)
gridfs_image_data = temp_content.getvalue()
with fs.new_file(
content_type = mimetypes.guess_type(filename)[0],
filename = filename,
size = size,
width = width,
height = height,
) as fp:
fp.write(gridfs_image_data)
ファイルはnginx-gridfs経由で提供されます。