Ruby On Rails:获取回形针图像的 md5 哈希

Posted

技术标签:

【中文标题】Ruby On Rails:获取回形针图像的 md5 哈希【英文标题】:Ruby On Rails: Get md5 hash of paperclip image 【发布时间】:2016-05-30 00:22:07 【问题描述】:

我正在使用名为回形针的 gem 将图像上传到 rails 服务器上的 ruby​​。图像已正确上传并且正在工作。我正在使用 md5 哈希,以便可以向 rails 服务器发出单个请求,将需要上传的图像准确返回到我的脚本(我不希望重复)。

在脚本中,我正在成功计算 md5

require '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'

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于Ruby On Rails:获取回形针图像的 md5 哈希的主要内容,如果未能解决你的问题,请参考以下文章

带有回形针的 If 语句 | Ruby on Rails

Ruby on Rails |我想从 ActiveStorage 中获取 Best Seller Taxonomy 的图像 标题已获取并显示在屏幕上,但图像不是

如何在 Ruby on Rails 中裁剪图像

ruby on rails 6 - 在javascript中动态引用图像

Rails 回形针,多种不同类型(PDF、图像、文档...)

Ruby on rails 5.2 - 带有活动存储的背景图像