Add CustomDisk Service for ActiveStorage

This commit is contained in:
Urban Rotnik 2019-10-03 12:48:37 +02:00
parent 9c88327a16
commit 81d66ceedd
7 changed files with 21 additions and 25 deletions

View file

@ -243,12 +243,6 @@ class Asset < ApplicationRecord
to_asset.post_process_file(to_asset.team)
end
def file_service_url
ActiveStorage::Current.set(host: Rails.application.secrets.mail_server_url) do
file.service_url
end
end
def extract_image_quality
return unless ['image/jpeg', 'image/pjpeg'].include? content_type

View file

@ -5,12 +5,6 @@ class TempFile < ApplicationRecord
has_one_attached :file
def file_service_url
ActiveStorage::Current.set(host: Rails.application.secrets.mail_server_url) do
file.service_url
end
end
class << self
def destroy_obsolete(temp_file_id)
temp_file = find_by_id(temp_file_id)

View file

@ -102,12 +102,6 @@ class TinyMceAsset < ApplicationRecord
image.variant(resize_to_limit: Constants::LARGE_PIC_FORMAT)
end
def file_service_url
ActiveStorage::Current.set(host: Rails.application.secrets.mail_server_url) do
image.service_url
end
end
def self.delete_unsaved_image(id)
asset = find_by(id: id)
asset.destroy if asset && !asset.saved

View file

@ -98,7 +98,7 @@ module Reports::Docx::PrivateMethods
image = TinyMceAsset.find_by(id: Base62.decode(elem.attributes['data-mce-token'].value))
next unless image
image_path = image_path(image)
image_path = image_path(image.image)
dimension = FastImage.size(image_path)
style = image_styling(elem, dimension)
@ -204,7 +204,7 @@ module Reports::Docx::PrivateMethods
def asset_image_preparing(asset)
return unless asset
image_path = image_path(asset)
image_path = image_path(asset.file)
dimension = FastImage.size(image_path)
x = dimension[0]
@ -292,8 +292,8 @@ module Reports::Docx::PrivateMethods
}
end
def image_path(asset)
asset.file_service_url
def image_path(attachment)
attachment.service_url
end
def calculate_color_hsp(color)

View file

@ -8,7 +8,7 @@ class SpreadsheetParser
file_path = file.path
else
filename = file.filename.to_s
file_path = file.file_service_url
file_path = file.service_url
end
case File.extname(filename)

View file

@ -1,9 +1,9 @@
test:
service: Disk
service: CustomDisk
root: <%= Rails.root.join("tmp/storage") %>
local:
service: Disk
service: CustomDisk
root: <%= Rails.root.join("storage") %>
amazon:

View file

@ -0,0 +1,14 @@
# frozen_string_literal: true
require 'active_storage/service/disk_service'
module ActiveStorage
class Service::CustomDiskService < Service::DiskService
def current_host
host = ActiveStorage::Current.host
host ||= Rails.application.secrets.mail_server_url
host = "http://#{host}" unless host.match?(/^http/)
host
end
end
end