У меня есть приложение Rails 4, работающее на MongoDB, и я использую Paperclip (4.3) для загрузки. Все нормально работает.
Теперь я создаю REST API с помощью Node.js и Mongoose для обслуживания некоторых данных, и мне сложно понять, как я могу сгенерировать URL-адрес для вложений скрепок с помощью Node.js.
Вот соответствующая часть одной из моделей Rails:
has_mongoid_attached_file :thumb,
:url => "/assets/images/templates/:hash.:extension",
:path => ":rails_root/public/assets/images/templates/:hash.:extension",
:hash_secret => "somesecret"
Поля, созданные в документе MongoDB, в конечном итоге выглядят примерно так:
"thumb_file_name" : "test-19103515.jpg",
"thumb_content_type" : "image/jpeg",
"thumb_file_size" : 76864,
"thumb_fingerprint" : "00dab4127977a69ab264d79202f5f799",
"thumb_updated_at" : ISODate("2018-03-28T03:32:36.454Z"),
а URL-адрес файла выглядит так:
/assets/images/templates/3666b3ef97b492b27b108fd215c397d2435d5fcb.jpg?1522207956
В основном я спрашиваю, знает ли кто-нибудь, как сгенерировать хеш, который генерирует скрепка, чтобы с учетом hash_secret я мог получить в этом случае результирующий хеш 3666b3ef97b492b27b108fd215c397d2435d5fcb.
Обратите внимание, что я знаю, что существует пакет npm node-paperclip, но я вижу только примеры загрузки, в то время как мне нужно иметь возможность сгенерировать полный URL-адрес вложения, уже загруженного приложением Rails. Если случайно кто-то из вас знает, как это сделать с этим пакетом, я буду счастлив использовать его.
В итоге мне пришлось добавить дополнительное поле в модель рельсов с полным URL-адресом для вложения, которое устанавливается перед сохранением модели, а затем использовать это поле в node.js
Я тоже думал об этом. Спасибо.





Привет, вы когда-нибудь находили решение этой проблемы?