5

しばらくの間、オーディオ ファイルをサイトにアップロードし、ffmpeg を使用してさまざまな形式に変換できる音楽サイトを開発する必要がありました。人々はアップロードされたオーディオ ファイルを購入した後にダウンロードし、tmp ファイルが作成され、ダウンロード場所に配置され、各ダウンロードインスタンスに対してのみ有効であり、tmp ファイルはその後削除されます。

今、私はプロジェクトを再検討しています。写真とビデオをアップロード コンテンツとして追加する必要があります。

ファイルを保存するための最良の方法を見つけたいのですが、

オプション 1 : ファイルをフォルダーに保存し、データベースで参照する

オプション 2 : 実際のファイルをデータベース (mysql) に blob として保存します。

私はこのアイデアをいじくり回して、各方法のセキュリティへの影響と、私が計算していない可能性のあるその他の問題を検討しています。

4

5 に答える 5

12

この以前の StackOverflow の質問を参照してください.

画像や動画について言及されたことは承知していますが、この質問はすべての大きなバイナリ コンテンツ メディア ファイルに関連しています。

コンセンサスは、実際の画像ではなく、ファイルシステム上の画像へのファイルパスを保存することです。

于 2008-10-09T10:28:09.680 に答える
4

ファイルとして保存し、その場所をデータベースに保存することをお勧めします。

ファイルをデータベースに保存すると、より多くのリソースが必要になり、データベースのバックアップ/復元が遅くなります。データベースのダンプを行うたびに、大量のビデオを転送する必要がありますか? ファイル システムは、ファイルを整理するのに非常にうまく機能し、非常に簡単にバックアップ/同期できます。

于 2008-10-09T10:35:54.233 に答える
4

私はデータベースオプションを選びます。私はいくつかの非常に大きな 100 GB 以上のプロジェクトでそれを使用しました。ストレージの実装が重要です。設計が不十分であると、パフォーマンスが低下します。いくつかの優れた実装のアイデアについては、次の例を参照してください。
データベース ストレージにより、スケーラビリティとセキュリティが向上します。

于 2008-10-09T12:45:29.887 に答える
3

ファイルをディスクに直接保存し、データベースに ID/URL のみを保持します。

この方法では、これらのファイル (大きなバイナリ ファイルである可能性があります) へのアクセスに、php/データベース操作は必要なく、Web サーバーによって直接行われます。
また、必要に応じて、これらのファイルを別のサーバーに移動する方が簡単です。

実際には、データベースにそれらを保存することの唯一の利点は、バックアップが簡単であることです-とにかくDBをバックアップしたいのですが、この方法ですべてのデータを1か所に保管し、各バックアップが完全であることを確認できます(つまり、そうしません.データベース エントリで使用されていないファイルがディスク上にない、データベース内にどこも指していないイメージ ID がないなど)

于 2008-10-09T10:31:53.587 に答える
1

Windows Forms アプリケーションのバックエンドとして Oracle を使用して、同様の質問をしました。

答えは、ファイルをバックアップおよび復元するための要件に要約されます。その要件が重要な場合は、データベースを使用する方が簡単です (とにかくデータベースをバックアップしているためですよね? :o)

于 2008-10-09T10:32:01.747 に答える