イントラネット Web サイトをホストするサーバーがあり、その機能の 1 つとしてファイルのアップロード機能があります。ファイルはアクセス制限付きフォルダーに保存され、Web バックエンドを通じて管理されます。名前の衝突を避けるために、UUID を割り当て、将来の検索に備えて元のファイル名と UUID をデータベースに保存する予定です。
しかし、2つの懸念があります。
- 重複ファイルの可能性(名前だけでなく実際のバイトレベルで)
- ファイルの整合性を確保します。
何らかのハッシュ/チェックサム (MD5、SHA256 など) を実行すれば、両方の懸念に対処できると考えました。ハッシュを保存しておき、将来ファイルを比較して破損していないことを確認できます。また、同じハッシュを持つ別のファイルが見つかった場合、そのファイルが本当に重複しているかどうかがわかります。
私の質問は次のとおりです:
- ファイルの破損についての私の懸念は根拠のないものですか?
- また、これは重複ファイルを識別するのに適した戦略でしょうか?
答え1
1) ファイルの破損は一般的ではなく、基盤となるシステムがそのような事態を防止し警告するはずですが、二重チェックは良いことです。さらに良いのは、オフサイトにバックアップを用意することです。http://en.wikipedia.org/wiki/バックアップソフトウェアの比較
2) とにかくハッシュを使用する場合、他の戦略は必要ありませんが、すべてのファイルをサイズで比較する rsync 移動検出などの便利な機能があり、高速で、同じサイズのファイルはすべてハッシュ化され (まだハッシュ化されていない場合)、一意性がチェックされます。ファイルの内容に応じて、テキストの場合は git、メディアの場合は品質優先などの他のオプションがあります。