Я загружаю изображение в рубин на сервере rails, используя драгоценный камень под названием paperclip. Изображение загружается правильно и работает. Я работаю над использованием хешей md5, чтобы можно было сделать один запрос на сервер rails, вернув моему сценарию именно то, что нужно загрузить изображения (я не хочу дубликатов).Ruby On Rails: Получить md5-хэш скрепки image
В сценарии я вычисляя md5 успешно с
require 'digest/md5'
и md5 = Digest::MD5.file(filename).hexdigest
На сервере для того, чтобы проверить, если md5s то же самое (изображение будет загружено против образа на сервере) I необходимо вычислить 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?
Если он не работает с использованием 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'
я не уверен, какой путь он хочет. Любая помощь приветствуется.