title: Shrine 2.17.0

New features

rb Shrine.download_endpoint(disposition: "attachment")

rb attacher.assign_remote_url(url, metadata: { "mime_type" => "text/plain" })

rb attacher.assign_data_uri(uri, metadata: { "filename" => "custom.txt" })

“‘rb plugin :default_url, host: “example.com

Attacher.default_url { “/#{name}/missing.png” } rb user.avatar_url #=> “” “‘

Other improvements

“‘rb # BEFORE: ImageUploader.upload_endpoint(:cache) #=> #<Shrine::Plugins::UploadEndpoint::App:0x00007f91bec17dc8 @max_size=nil, @rack_response=nil, @shrine_class=ImageUploader, @storage_key=:cache, @upload=nil, @upload_context=nil> ImageUploader.presign_endpoint(:cache) #=> #<Shrine::Plugins::PresignEndpoint::App:0x00007f91beca4ea8 @presign=nil, @presign_location=nil, @presign_options=nil, @rack_response=nil, @shrine_class=ImageUploader, @storage_key=:cache> ImageUploader.download_endpoint #=> #<Class:0x00007f91bed1fa90> ImageUploader.derivation_endpoint #=> #<Shrine::DerivationEndpoint:0x00007f91bed4c900 @options={}, @shrine_class=ImageUploader>

# AFTER: ImageUploader.upload_endpoint(:cache) #=> #<ImageUploader::UploadEndpoint(:cache)> ImageUploader.presign_endpoint(:cache) #=> #<ImageUploader::PresignEndpoint(:cache)> ImageUploader.download_endpoint #=> #<ImageUploader::DownloadEndpoint> ImageUploader.derivation_endpoint #=> #<ImageUploader::DerivationEndpoint> “‘

Backwards compatibility

rb plugin :determine_mime_type, analyzer: :marcel, analyzer_options: { filename_fallback: true }