鉴于以下情况:
source
通过文件传输新收到的 PDF 类型的文档- 使用和版本化
target
保存为附件 blob 的文档active_storage
我想检查任何现有版本target
是否二进制等于source
. 如果没有active_storage
,我会对进入数据库的任何 blob 进行 SHA256 总和。为了进行比较,我会将新的 SHA256 总和与source
为任何版本存储的每个校验和进行比较target
。
然而.checksum
,active_storage
附件和 blob 的方法似乎既不是 MD5 也不是 SHA265 和。例如,我得到Cr4IxYNF7v7cJao1EiiBEw==
一些文件。
一个解决方案是使用类似的东西,Digest::SHA256.hexdigest(Person.find(46).photo.download)
但是性能会很糟糕。
如何有效地搜索我的active_storage
“数据库”?