# 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