diff --git a/lib/active_storage/service/scaleway_service.rb b/lib/active_storage/service/scaleway_service.rb index 917bfd032d09389a0fabc2ffbb27d5c58c76e64c..28b7569b96cf8bf5149497c361c1ae19f7a2c17b 100644 --- a/lib/active_storage/service/scaleway_service.rb +++ b/lib/active_storage/service/scaleway_service.rb @@ -14,5 +14,17 @@ module ActiveStorage headers.merge({ "Content-Type" => content_type, "Content-MD5" => checksum, "Content-Disposition" => content_disposition }) end + + private + + def public_url(key, **options) + disposition, filename, content_type = options.values_at(:disposition, :filename, :content_type) + uri = URI.parse(object_for(key).public_url) + uri.query = URI.encode_www_form({ + "response-content-disposition" => content_disposition_with(type: disposition, filename: filename), + "response-content-type" => content_type + }) + uri.to_s + end end end