2016-12-26 4 views
1

私は、自分のアプリケーションの1つと同じpdfドキュメントの複製を防ぐことを検討しています。アップロードされたPDFドキュメントの重複と一致しますか?

ドキュメントの名前とともにかなり簡単な作業だとわかっていますが、私はPDFの複製をその名前で一致させたくありません。

ここで課題は、エンドユーザーがアップロードしたドキュメントの名前ではなく、コンテンツに基づいてアップロードされたドキュメントの複製を確認することです。

過去にこのようなシナリオを防ぐことは決してありませんでしたが、誰かが自分の問題を解決する方法を持っているかどうかを知りたいと思います。

あなたの解決策やトリックは本当に役に立ちます。

ありがとうございました。おかげさまで、おなじみの解決策を待っていました。

+0

あなたの重複の定義によって異なります。正確に同じ視覚的内容を持つが、内部メタデータが異なるPDFは重複していますか? –

答えて

4

アップロードされたファイルからチェックサムを生成し、データベース(または他の場所)に保存し、新しいアップロードファイルのチェックサムが既にデータベースに存在するかどうかを確認することをお勧めします。

Rubyでは、あなたはそれを行うにはDigestモジュールを使用することができます:あなたは、このチェックサムを使用して、ファイル名を確認する必要はありません

require "digest" 
data = File.read("some_file_path") 
checksum = Digest::MD5.hexdigest(data) 

1

簡単な方法の1つは、MD5チェックサムで調べることです。ファイルを1行ずつ読み込みまたは解析する代わりに、MD5ダイジェストを生成してマッチさせます。同じMD5値を持つものは同じファイルです。

RubyでファイルのMD5を生成するには?

require 'digest' 
Digest::MD5.file("path/tp/pdf").hexdigest 
# md5 string 
関連する問題