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

时间:2016-02-18 01:43:32

标签: ruby-on-rails ruby hash paperclip md5

我使用名为paperclip的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 个答案:

答案 0 :(得分:0)

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

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