多くの画像を使用する Web サイトを開発しています。画像は非常に頻繁に (クライアントによって数秒ごとに) 操作されます。すべてのイメージは Linux サーバー上にあります。また、2 つのクライアントが同時にイメージを変更しようとする可能性もあります。私の質問は次のとおりです。画像をデータベースに入れるか、単にフォルダーに残す必要がありますか (OS は書き込みと書き込みの衝突をどのように処理しますか?)。
サーバー上で node.js と mongoDB を使用しています。
通常、データベース内のファイルの場所への参照を保存します。書き込みと書き込みの衝突に関する限りほとんどの場合、ファイルを最初に開いている人は誰でも最初にファイルを取得しますが、ほとんどの場合、使用しているOSによって異なります。あなたはファイルロックを調べたいと思うでしょう。このウィキペディアの記事は、優れた概要を示しています。
http://en.wikipedia.org/wiki/File_locking
書き込みの衝突が発生する可能性がある場合は、ファイルが使用中であるかどうかを確認してユーザーに通知することも、コードの良い習慣と見なされます。
GridFS ファイル システムを使用して、MongoDB 内に画像を保存することをお勧めします。これにより、イメージとそのメタデータを一緒に保持できます。データベースにレプリカ セットを使用している場合は、アトミックな更新とさらに 2 つの利点があります。
イメージは残りのデータと同じ高可用性を持ち、一緒にバックアップされます
最終的に、クエリをセットのセカンダリ メンバーに送信できます。
詳細については、次を参照してください。
http://docs.mongodb.org/manual/applications/gridfs
http://docs.mongodb.org/manual/replication/
これは役に立ちますか?
乾杯
ロナルド