Not able to change S3 path of images in refinerycms (using dragonfly) in rails

39 Views Asked by At

Currently I am migrating a 10 year old on-prem application to heroku. We have good amount of data in our servers. dragonfly/refinerycms data stored at: public/system/refinery/...

Images stored under refinery folder images/2021/11/25/486ucenknk_image.png same is the case for resources.

But when I set in images.rb

config.s3_datastore = true

obviously files start saving to S3 bucket. But with a different path. Which is

2021/11/25/02/01/37/5f6e0f21-658c-4cf2-9edc-da7cb8575ab8/images.png

means it is including time as well in folders. I tried changing this path at so many places but I couldn't. I tried changing url_format as well, but looks like it is not affecting anything in the store location.

I have attached the config files for both the files.

config/initializers/dragonfly.rb

# config/initializers/dragonfly.rb

require 'dragonfly/s3_data_store'

# Configure
Dragonfly.app.configure do

  protect_from_dos_attacks true
  secret "Some secret"

  url_format "/media/:job/:name"

  datastore :s3,
    bucket_name: ENV['S3_BUCKET'],
    access_key_id: ENV['S3_KEY'],
    secret_access_key: ENV['S3_SECRET'],
    url_scheme: 'https'
end

# Logger
Dragonfly.logger = Rails.logger

# Mount as middleware
Rails.application.middleware.use Dragonfly::Middleware

# Add model functionality
if defined?(ActiveRecord::Base)
  ActiveRecord::Base.extend Dragonfly::Model
  ActiveRecord::Base.extend Dragonfly::Model::Validations
end

Excon.defaults[:write_timeout] = 500

config/initializers/refinery/images.rb

# config/initializers/refinery/images.rb
# encoding: utf-8
Refinery::Images.configure do |config|

  # Configure S3 (you can also use ENV for this)
  # The s3_backend setting by default defers to the core setting for this but can be set just for images.
  config.s3_datastore = false
  config.s3_bucket_name = ENV['S3_BUCKET']
  config.s3_access_key_id = ENV['S3_KEY']
  config.s3_secret_access_key = ENV['S3_SECRET']
  config.s3_region = 'us-east-1'

  # Configure Dragonfly
  config.dragonfly_verify_urls = false
  config.datastore_root_path = "/refinery/images"

end

If anyone encountered problem like this before, please help me. Thanks in Advance.

0

There are 0 best solutions below