Хранение изображений в Postgres DB Store RefineryCMS с помощью Dragonfly
Мое приложение - refineryCMS, которое размещено на сервере heroku. Мне нужно хранить изображения в хранилище postgres DB. Я получил один драгоценный камень https://github.com/mezis/dragonfly-activerecord, но не смог сохранить его в базе данных. Я старался:
Настройте саму Стрекозу (в config/initializers/dragonfly.rb
, как правило):
require 'dragonfly-activerecord/store'
Dragonfly.app.configure do
# ... your existing configuration here
datastore Dragonfly::ActiveRecord::Store.new
Нам нужно интегрировать этот драгоценный камень в refineryCMS. Если мы сможем хранить изображения в базе данных для cms, это будет очень полезно для хоста, такого как heroku.
3 ответа
Вот решение вместе с вилкой dragonfly-activerecord. Просто иди в config/initializers/refinery/images.rb
Вот код для этого. Сначала следуйте шагам вилки dragonfly-activerecord
В Gemfile:
gem 'dragonfly-activerecord' , git: "git://github.com/arpit-clarion/dragonfly-activerecord.git"
а также
bundle
rails generate migration add_dragonfly_storage
В файле миграции добавьте этот код
require 'dragonfly-activerecord/migration'
class AddDragonflyStorage < ActiveRecord::Migration
include Dragonfly::ActiveRecord::Migration
end
Бежать rake db:migrate
и добавьте этот код:
config/initializers/refinery/images.rb
# encoding: utf-8
require 'dragonfly-activerecord/store'
Refinery::Images.configure do |config|
#...... Your configuration ....
config.custom_backend_class = 'Dragonfly::ActiveRecord::Store'
config.custom_backend_opts = {}
#...... Your configuration ....
end
Это изменит всю структуру системных папок, установленных в базу данных. Не нужно никаких ведер.
Имейте в виду, что эта система предназначена для тех приложений, у которых меньше изображений для хранения, поскольку она генерирует большие куски в дБ и преобразует изображения по запросу.
Почему бы вам не использовать Amazon S3 для хранения изображений? Он отлично работает с Heroku: http://www.refinerycms.com/guides/heroku
Потрясающие! Не могли бы вы написать это решение в качестве руководства в хранилище Refinery CMS? https://github.com/refinery/refinerycms/tree/master/doc/guides