Monkey patch Active Storage to set content type when uploading to S3
This commit is contained in:
parent
77026ee039
commit
77ee8c1a53
1 changed files with 31 additions and 0 deletions
31
config/initializers/active_storage.rb
Normal file
31
config/initializers/active_storage.rb
Normal file
|
@ -0,0 +1,31 @@
|
|||
Rails.configuration.after_initialize do
|
||||
require "active_storage/service/s3_service"
|
||||
require_dependency "active_storage/variant"
|
||||
|
||||
module OpenStreetMap
|
||||
module ActiveStorage
|
||||
module Variant
|
||||
private
|
||||
|
||||
def upload(image)
|
||||
File.open(image.path, "r") { |file| service.upload(key, file, :content_type => content_type) }
|
||||
end
|
||||
end
|
||||
|
||||
module S3Service
|
||||
def upload(key, io, content_type:, **options)
|
||||
@upload_options[:content_type] = content_type
|
||||
super(key, io, **options)
|
||||
@upload_options.delete(:content_type)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
ActiveStorage::Variant.prepend(OpenStreetMap::ActiveStorage::Variant)
|
||||
ActiveStorage::Service::S3Service.prepend(OpenStreetMap::ActiveStorage::S3Service)
|
||||
|
||||
ActiveSupport::Reloader.to_complete do
|
||||
ActiveStorage::Variant.prepend(OpenStreetMap::ActiveStorage::Variant)
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue