diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2017-08-08 14:41:44 -0400 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2017-08-08 14:42:03 -0400 |
commit | 1422e9f9c90462c10d1b0abe6f63f4f6639a8bc3 (patch) | |
tree | a522657528de26177ab0c0f94a64a067021d65c7 /activestorage | |
parent | 4b72bee47bb590efac498ad2494efa769350aabd (diff) | |
parent | 6ef37940135c8fe7a6fca2033dc1fe132d2c468f (diff) | |
download | rails-1422e9f9c90462c10d1b0abe6f63f4f6639a8bc3.tar.gz rails-1422e9f9c90462c10d1b0abe6f63f4f6639a8bc3.tar.bz2 rails-1422e9f9c90462c10d1b0abe6f63f4f6639a8bc3.zip |
Merge pull request #30135 from ffmike/azure-storage-fix-content-type
Support content_type in AzureStorageService#url
Diffstat (limited to 'activestorage')
-rw-r--r-- | activestorage/lib/active_storage/service/azure_storage_service.rb | 5 | ||||
-rw-r--r-- | activestorage/test/service/azure_storage_service_test.rb | 9 |
2 files changed, 11 insertions, 3 deletions
diff --git a/activestorage/lib/active_storage/service/azure_storage_service.rb b/activestorage/lib/active_storage/service/azure_storage_service.rb index c2e1b25a43..2e0b20cce3 100644 --- a/activestorage/lib/active_storage/service/azure_storage_service.rb +++ b/activestorage/lib/active_storage/service/azure_storage_service.rb @@ -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 diff --git a/activestorage/test/service/azure_storage_service_test.rb b/activestorage/test/service/azure_storage_service_test.rb index e2be510b60..a0c6a4de73 100644 --- a/activestorage/test/service/azure_storage_service_test.rb +++ b/activestorage/test/service/azure_storage_service_test.rb @@ -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 |