我的应用程序是一个在heroku服务器上托管的refineryCMS。我需要将图像存储在postgres DB存储中。我有一个gem dragonfly-activerecord,但无法将其保留在数据库中。我试过了:
配置Dragonfly本身(通常在config/initializers/dragonfly.rb
中):
require 'dragonfly-activerecord/store'
Dragonfly.app.configure do
# ... your existing configuration here
datastore Dragonfly::ActiveRecord::Store.new
我们需要将这个gem集成到refineryCMS中。如果我们可以在cms的数据库中存储图像,这对像heroku这样的主机很有帮助。
答案 0 :(得分:0)
为什么不直接使用Amazon S3存储图片?它适用于Heroku:http://www.refinerycms.com/guides/heroku
答案 1 :(得分:0)
这是与dragonfly-activerecord fork一起的解决方案。只需转到config/initializers/refinery/images.rb
这是一个代码来做到这一点。首先按照dragonfly-activerecord fork步骤
在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
这会将整个系统文件夹结构设置为数据库。不需要任何桶。
请记住,此系统适用于那些存储较少图像的应用程序,因为它会在db中生成大块并且会在请求时转换图像。
答案 2 :(得分:0)
真棒!您能否在Refinery CMS存储库中编写此解决方案作为指南? https://github.com/refinery/refinerycms/tree/master/doc/guides