From 299ae9bf922401751dc2a4dd50739a0391e0863a Mon Sep 17 00:00:00 2001 From: Victor Dyotte Date: Fri, 7 Jun 2024 08:29:30 -0400 Subject: [PATCH] Add `S3_KEY_PREFIX` environment variable (#30181) --- config/initializers/paperclip.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/config/initializers/paperclip.rb b/config/initializers/paperclip.rb index 5b9365a530..0be78b99f9 100644 --- a/config/initializers/paperclip.rb +++ b/config/initializers/paperclip.rb @@ -3,6 +3,8 @@ Paperclip::DataUriAdapter.register Paperclip::ResponseWithLimitAdapter.register +PATH = ':prefix_url:class/:attachment/:id_partition/:style/:filename' + Paperclip.interpolates :filename do |attachment, style| if style == :original attachment.original_filename @@ -29,7 +31,7 @@ end Paperclip::Attachment.default_options.merge!( use_timestamp: false, - path: ':prefix_url:class/:attachment/:id_partition/:style/:filename', + path: PATH, storage: :fog ) @@ -40,6 +42,8 @@ if ENV['S3_ENABLED'] == 'true' s3_protocol = ENV.fetch('S3_PROTOCOL') { 'https' } s3_hostname = ENV.fetch('S3_HOSTNAME') { "s3-#{s3_region}.amazonaws.com" } + Paperclip::Attachment.default_options[:path] = ENV.fetch('S3_KEY_PREFIX') + "/#{PATH}" if ENV.has_key?('S3_KEY_PREFIX') + Paperclip::Attachment.default_options.merge!( storage: :s3, s3_protocol: s3_protocol, @@ -159,7 +163,7 @@ else Paperclip::Attachment.default_options.merge!( storage: :filesystem, path: File.join(ENV.fetch('PAPERCLIP_ROOT_PATH', File.join(':rails_root', 'public', 'system')), ':prefix_path:class', ':attachment', ':id_partition', ':style', ':filename'), - url: "#{ENV.fetch('PAPERCLIP_ROOT_URL', '/system')}/:prefix_url:class/:attachment/:id_partition/:style/:filename" + url: ENV.fetch('PAPERCLIP_ROOT_URL', '/system') + "/#{PATH}" ) end