
ユーザーがアップロードしたコンテンツをフィルタリングする必要があるという要件があります。しかし、ユーザーのアップロードのほとんどは、実際には以下から来ていることがわかりました。私たちだけのシステム:たとえば、誰かがドキュメントライブラリからPDFをダウンロードし、必要に応じて別の名前に変更し、他のユーザーと共有できるカスタムコンテンツセクションに再アップロードします。
誰かが実際にファイルを見なくてもこのファイルを信頼できるものとしてマークしたいと思い、ファイルサイズと一種のチェックサムを使ってこれを行うことができると思いました。例えば
- 特定の新しいファイルについて
- ライブラリフォルダで、ファイル拡張子と同じファイルサイズを持つすべてのファイルを見つけます。
- 拡張子とサイズが同じすべてのファイルに対して、一種のチェックサム比較を実行します。
- 一致するものが見つかると、新しいファイルが信頼できると宣言されます。
現在のストレージディレクトリは132GBとかなり大きいです。したがって、その中のすべてのファイル(拡張子が同じすべてのファイルを含む)を調べるソリューションは非常に遅くなります。
コンテンツが変更されたときに自動的に更新するか、スケジューラを使用して1日に1回だけ実行するファイルチェックサムデータベースの種類(リテラルDBMSを使用する必要はありません)を維持するのが賢明です。その後、特定の新しいファイルのチェックサムを取得してデータベースから検索できます。
この問題は解決しなければならないようです。誰でもどんなアイデアがありますか?
ありがとう、マックス
答え1
あなたは見ることができますファイルの整合性の監視ソフトウェア。
デフォルトでは、これらはファイルシステム内のルートキットの導入を検出するように設計されていますが、コアにはメタ情報(チェックサム、ハッシュ)を含むファイルデータベース、および一連のディレクトリの下に変更または追加された監視ファイルがあります。あなたが望むもの。
私が聞いたことの最も古いもの引き継ぎ鉄線しかし、次のオープンソースバージョンが作成されました。 アシスタント。最新のもの OSSECおすすめからhttps://serverfault.com/questions/141800/recommend-alternative-to-tripwire。
答え2
これは解決された問題かもしれませんが、あまりにも具体的であり、Unix / Linuxの世界には標準的なツールはありません。あなたの質問には答えの大部分が含まれています。データベースが必要です。より正確にはデータベースが必要です。索引チェックサム。さらに、このインデックスに新しいファイルを追加、更新、および確認するコンポーネントが必要です。私の考えには直接実装する必要があり、実装のための自然な場所はアップロードメカニズム(たとえばWebページ)になります。