MongoDBにファイルを保存するためにGridFSは必ずしも必要ではありませんが、メタデータも利用できるようにしながら、バイナリデータの分割と保存を処理するため、GridFSは確かに優れたエクスペリエンスになります。その後、IDをUser
に保存できます アバター画像に文書化します。
それはさておき、コードではデータを保存していませんが、バイナリデータをドキュメントに直接保存することもできます。 PIL.Image
で開くだけです 、しかしそれでは何もしません。
pymongo
を使用していると仮定します あなたのドライバーにとって、あなたができることは、バイナリデータをBinary
でラップすることだと思います コンテナに入れて保管します。これは私によってテストされていませんが、機能するはずです:
from pymongo.binary import Binary
binary_avatar = Binary(avat)
user={
...
"avatar":avatar,
"avatar_file": binary_avatar
...
}
言われていることですが...自分で簡単にしてGridFSを使用してください。それが意味するところです。
GridFSを使用する場合は、次のようになります。
from gridfs import GridFS
avat_ctype = self.request.files['avatar'][0]["content_type"]
fs = GridFS(db)
avatar_id = fs.put(avat, content_type=avat_ctype, filename=nomfich)
user={
...
"avatar_name":avatar,
"avatar_id": avatar_id
...
}