ruby-on-rails - ruby rails : Get md5 hash of paperclip image

标签 ruby-on-rails ruby hash paperclip md5

我正在使用名为 paperclip 的 gem 将图像上传到 ruby​​ on rails 服务器。图像已正确上传并且正在运行。我正在努力使用 md5 哈希,以便可以向 Rails 服务器发出单个请求,返回我的脚本确切需要上传的图像(我不想重复)。

在脚本中我成功计算了 md5

需要 'digest/md5'md5 = Digest::MD5.file(filename).hexdigest

在服务器上,为了检查 md5 是否相同(要上传的图像与服务器上的图像),我需要计算服务器上每个回形针图像的 md5。

图像称为 TestImages,模型看起来像这样

class TestImage < ActiveRecord::Base
  has_attached_file :image, styles: {thumbnail: '100x100', small: '350x350'}
  validates_attachment :image, content_type: {content_type: ["application/octet-stream", "multipart/form-data", "image/jpg", "image/jpeg", "image/png", "image/gif"]}
  belongs_to :build
  belongs_to :test
end

有人说回形针添加了指纹功能(md5 表示法),但我不确定如何设置它。它似乎是自动完成的,但需要作为列存储在数据库中?这是我正在看的另一篇文章 Rails: How does MD5 checksum work in paperclip?

如果它不适用于回形针(回形针指纹),我可以执行与脚本中相同的摘要/md5 方法,但我似乎无法找到回形针图像的完整图像路径。

用这个没用 image.md5 = Digest::MD5.file(test_image.image.path).hexdigest

这给出了以下错误:

Errno::ENOENT (No such file or directory @ rb_sysopen - /Users/scott.bishop/Code/visual-automation/public/system/test_images/images//original/testBasic_2x.png):
  app/controllers/test_images_controller.rb:37:in `create'

我不确定它想要什么路径。任何帮助将不胜感激。

最佳答案

事实证明回形针图像路径有效。

require 'digest/md5'
image.md5 = Digest::MD5.file(PAPER_CLIP_IMAGE.path).hexdigest

关于ruby-on-rails - ruby rails : Get md5 hash of paperclip image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35471239/

相关文章:

javascript - 如何使用 capybara 和恶作剧检查 Javascript 错误?

ruby - 访问符号链接(symbolic link)文件的真实文件名

c++ - 如何在 C++ 中散列

algorithm - 除了替代哈希码字符串生成之外,Google 的 CityHash 有什么用?

ruby - 从散列中的每个键返回前 x 个值

ruby-on-rails - 更多用于before_validation的方法

ruby-on-rails - Devise - 发出请求而不重置倒计时,直到用户因不活动而注销

ruby-on-rails - 哪个是用于 rails 3 的最佳亚马逊 SES(电子邮件) gem?

ruby - 结合 'uniq'和 'compact'的数组方法

ruby-on-rails - ActiveRecord::Enum - PG::InvalidTextRepresentation:错误:整数输入语法无效: