mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Merge pull request #30135 from ffmike/azure-storage-fix-content-type
Support content_type in AzureStorageService#url
This commit is contained in:
commit
1422e9f9c9
2 changed files with 11 additions and 3 deletions
|
@ -57,11 +57,12 @@ module ActiveStorage
|
|||
end
|
||||
end
|
||||
|
||||
def url(key, expires_in:, disposition:, filename:)
|
||||
def url(key, expires_in:, disposition:, filename:, content_type:)
|
||||
instrument :url, key do |payload|
|
||||
base_url = url_for(key)
|
||||
generated_url = signer.signed_uri(URI(base_url), false, permissions: "r",
|
||||
expiry: format_expiry(expires_in), content_disposition: "#{disposition}; filename=\"#{filename}\"").to_s
|
||||
expiry: format_expiry(expires_in), content_type: content_type,
|
||||
content_disposition: "#{disposition}; filename=\"#{filename}\"").to_s
|
||||
|
||||
payload[:url] = generated_url
|
||||
|
||||
|
|
|
@ -6,8 +6,15 @@ if SERVICE_CONFIGURATIONS[:azure]
|
|||
SERVICE = ActiveStorage::Service.configure(:azure, SERVICE_CONFIGURATIONS)
|
||||
|
||||
include ActiveStorage::Service::SharedServiceTests
|
||||
end
|
||||
|
||||
test "signed URL generation" do
|
||||
url = @service.url(FIXTURE_KEY, expires_in: 5.minutes,
|
||||
disposition: :inline, filename: "avatar.png", content_type: "image/png")
|
||||
|
||||
assert_match(/(\S+)&rsct=image%2Fpng&rscd=inline%3B\+filename%3D%22avatar.png/, url)
|
||||
assert_match SERVICE_CONFIGURATIONS[:azure][:container], url
|
||||
end
|
||||
end
|
||||
else
|
||||
puts "Skipping Azure Storage Service tests because no Azure configuration was supplied"
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue