私はFileField
のモデルを作っています。私はファイルのパスの代わりに、データベースの列にファイルの内容を格納する。助言がありますか?ファイルの内容をDBに保存する
答えて
それだけで、これは私がこれは古い質問ですけど、ありますテーブル含むFileContent
これは動作しません。非ASCII文字で保存しようとする最初のバイナリファイルは、それを爆破します。 base64を使用して最初にエンコードし、データベースから読み出すときにデコードする必要があります。 – Cerin
さて、バイナリ列に保存するのはどうですか?その後、バイトのコレクションを格納できます。また、ファイル名が重要な場合は、追加の名前列に保存することもできます。
naysayersは無視してください。コンテンツを完全に制御したい場合は、ファイルをデータベースのblobフィールドに入れます。私は一般に別のフィールドにファイル名を保持するので、必要に応じてファイルを再構築することができます(ほとんどのオペレーティングシステムでファイルタイプに結びつけています)。
実際のBLOBデータは別のテーブルに保存してください。ファイルに関する情報を扱う際にパフォーマンスを犠牲にすることはありませんコンテンツそのもの以外の
naysayersが実現しないことは、データベースが単にファイルシステムの非常に最適化された形式であることです。バイトはバイトで、ディスクセクタはディスクセクタです。データベースは、ファイルシステムよりもバイトを整理して検索するほうがはるかに優れています。言うまでもなく、データベースは、ほとんどのファイルシステムよりもはるかに厳格なセキュリティを実装し、(バックアップ、サポートスタッフなどで)よりよく管理されています。
のデシベル欄含むFileContentに含むFileContent格納する管理方法保存
filecontent=form.cleaned_data.get('upload_file')
data =filecontent.read()
from django.db import connection
cursor = connection.cursor()
cursor.execute("update filecontent set filecontent=(%s) where id=(%s)",[data,obj.id])
connection.connection.commit()
cursor.close()
connection.close()
をオーバライド
非常に簡単です。それ以来、このオプションを許可するために書かれた良いコードでした。特にdjango-database-filesを参照してください。これは、DjangoのストレージAPIを使用して、すべてのFileFieldとImageFieldがその内容をデータベースに格納するようにします。ファイルシステムのローカルにファイルをキャッシュするforkもあり、データベースを使用する際の最大の注意点であるレイテンシを克服しています。
- 1. asp.netフォームをhtmlファイルに保存し、制御内容を保存
- 2. 保存内容
- 3. csvファイルの内容をデータフレームに保存する[Python Pandas]
- 4. Rails:バイナリフィールドの内容をファイルに保存する
- 5. jquery UI - テーブルの内容をファイルに保存
- 6. MatlabのFigureに内容を保存する(getframeを使用せず、ファイルに保存することなし)
- 7. NSTextViewの内容を平文ファイルとして保存します
- 8. 保存する前にユーザーがアップロードしたファイルの内容を取得する
- 9. 写真をMySQL DBに保存するとファイルとして保存する
- 10. divの内容をjQuery AJAXとPHPで新しいファイルに保存する
- 11. PHP - サーバーに保存せずにzipファイルの内容を読み取る
- 12. リストビューの内容をアンドロイドのテキストファイルに保存する方法は?
- 13. xmlにstringの内容を保存してxmlファイルを再度読み取る
- 14. AndroidのListViewコントロールと保存内容
- 15. NSCacheの内容をディスクに保存する
- 16. ウェブテーブルの内容を2次元マトリックスに保存する
- 17. 自動的にテキストボックスの内容を保存する
- 18. localstorageにsrc属性の内容を保存する
- 19. 投稿内容をasp.netに保存するには
- 20. POSTリクエストの内容を.NETのファイルとして保存する方法
- 21. データベースへのdatagridviewの内容の保存に関する問題
- 22. ファイルを保護するときに、ファイル内容全体をメモリに保存または保存するときにNSDataストリーミングが行われますか?
- 23. データベースに編集可能な内容を保存する
- 24. 内容をJTextFieldから配列に保存する
- 25. NSTableViewの行の編集内容を保存する方法は?
- 26. Androidのアクティビティの状態と内容を保存する
- 27. jLabelの内容を新しいフォルダにエクスポート/保存します
- 28. DIVの内容を取得してファイル、jQuery/JSまたはサーバー側に保存
- 29. DB内の時間の長さを保存する方法
- 30. JSONデータをdbに保存
なぜそれをしたいですか?ファイルはファイルシステムに属します。 –
データベースに保存するバイナリデータの量はどれくらいですか?何千もの大きなバイナリファイルを格納するのと比べて、データベースにいくつかのバイナリオブジェクトを格納することには大きな違いがあります。 – Kane
はい。その決定の根拠は何ですか?なぜそれらをFSに保管しないのですか? – exhuma