ファイルの固有値を求めて管理をしておけばe文書法にも対応できるって聞きました。
require 'digest/md5' p Digest::MD5.hexdigest(File.open('ruby-1.8.5.tar.gz','rb').read)
ファイルサイズが大きすぎるときは
class Digest::Base def self.open(path) obj = new File.open(path, 'rb') {|f| buf = "" while f.read(256, buf) obj << buf end } obj end end p Digest::MD5.open("ruby-1.8.5.tar.gz").hexdigest # => "3fbb02294a8ca33d4684055adba5ed6f"
にするとイイらしい。
ファイル同期をしているが、ファイル名を適当に変更してしまったので、ファイル名で同期できなくなったので、ハッシュ値で同期することにした。JPEG1000ファイルくらいなら5分程度で行けた。ネットワーク越しだと重かった。
やっぱり、ファイルを全部読み込むのは重い処理ですよね。