debshots/config/initializers/shrine.rb

25 lines
1.1 KiB
Ruby

# See also: https://github.com/erikdahlstrand/shrine-rails-example/blob/master/config/initializers/shrine.rb
require 'shrine'
require 'shrine/storage/file_system'
# both `cache` and `store` storages are needed
Shrine.storages = {
# Saves to ./shrine/files/screenshot/ID/image/…
cache: Shrine::Storage::FileSystem.new(Rails.application.config.shrine_storage_path,
prefix: 'cache'),
store: Shrine::Storage::FileSystem.new(Rails.application.config.shrine_storage_path,
prefix: 'files')
}
# See plugin documentation at https://shrinerb.com/docs/plugins/activerecord
# Persist images. Promote from :cache to :store when Screenshot.save is called.
# Delete files if the Screenshot get destroyed.
Shrine.plugin :activerecord
Shrine.plugin :instrumentation
Shrine.plugin :determine_mime_type, analyzer: :marcel, log_subscriber: nil
Shrine.plugin :cached_attachment_data
Shrine.plugin :restore_cached_data
Shrine.plugin :derivatives # up front processing
# Shrine.plugin :derivation_endpoint, # on-the-fly processing
# secret_key: Rails.application.secret_key_base