2019-07-10 20:37:23 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2019-09-16 16:26:13 +08:00
|
|
|
require 'active_storage/previewer/libreoffice_previewer'
|
2023-07-20 18:59:45 +08:00
|
|
|
require 'active_storage/analyzer/image_analyzer/custom_image_magick'
|
2024-02-05 23:24:06 +08:00
|
|
|
require 'active_storage/analyzer/text_extraction_analyzer'
|
2019-09-18 21:34:49 +08:00
|
|
|
require 'active_storage/downloader'
|
2019-09-16 16:26:13 +08:00
|
|
|
|
2020-12-16 19:13:42 +08:00
|
|
|
# Enable PDF previews for files
|
|
|
|
Rails.application.config.x.enable_pdf_previews = ENV['ACTIVESTORAGE_ENABLE_PDF_PREVIEWS'] == 'true'
|
|
|
|
|
2024-07-15 20:22:56 +08:00
|
|
|
Rails.application.config.active_storage.previewers << ActiveStorage::Previewer::PopplerPDFPreviewer
|
|
|
|
Rails.application.config.active_storage.previewers << ActiveStorage::Previewer::LibreofficePreviewer
|
2019-09-12 23:21:48 +08:00
|
|
|
|
2023-07-20 18:59:45 +08:00
|
|
|
Rails.application.config.active_storage.analyzers.prepend(ActiveStorage::Analyzer::ImageAnalyzer::CustomImageMagick)
|
2024-02-05 23:24:06 +08:00
|
|
|
Rails.application.config.active_storage.analyzers.append(ActiveStorage::Analyzer::TextExtractionAnalyzer)
|
2019-10-08 16:42:55 +08:00
|
|
|
|
2019-09-12 23:21:48 +08:00
|
|
|
Rails.application.config.active_storage.variable_content_types << 'image/svg+xml'
|
|
|
|
|
2019-09-18 15:49:02 +08:00
|
|
|
Rails.application.config.active_storage.variant_processor = :vips if ENV['ACTIVESTORAGE_ENABLE_VIPS'] == 'true'
|
2019-09-18 21:34:49 +08:00
|
|
|
|
|
|
|
ActiveStorage::Downloader.class_eval do
|
2023-07-05 18:43:23 +08:00
|
|
|
def open(key, checksum: nil, verify: true, name: 'ActiveStorage-', tmpdir: nil)
|
2019-09-18 21:34:49 +08:00
|
|
|
open_tempfile(name, tmpdir) do |file|
|
|
|
|
download key, file
|
|
|
|
if checksum == 'dummy' || checksum.nil?
|
|
|
|
ActiveStorage::Blob.find_by(key: key).update(checksum: Digest::MD5.file(file).base64digest)
|
|
|
|
else
|
2023-07-05 18:43:23 +08:00
|
|
|
verify_integrity_of(file, checksum: checksum) if verify
|
2019-09-18 21:34:49 +08:00
|
|
|
end
|
|
|
|
yield file
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|