aboutsummaryrefslogtreecommitdiffstats
path: root/activestorage/lib/active_storage/service/azure_storage_service.rb
diff options
context:
space:
mode:
authorAndrew White <andrew.white@unboxed.co>2018-03-12 17:34:42 +0000
committerAndrew White <andrew.white@unboxed.co>2018-03-12 17:39:58 +0000
commit309bb6c4d068b0d480681cf4ef1b90158527dfe5 (patch)
treebc3544c31121bf60388e5fbe7a59ed28907aed88 /activestorage/lib/active_storage/service/azure_storage_service.rb
parent7bede102d2fb279204665cb5c80249eace486021 (diff)
downloadrails-309bb6c4d068b0d480681cf4ef1b90158527dfe5.tar.gz
rails-309bb6c4d068b0d480681cf4ef1b90158527dfe5.tar.bz2
rails-309bb6c4d068b0d480681cf4ef1b90158527dfe5.zip
Remove path config option from Azure service
The Active Storage service for Azure Storage has an option called `path` that is ambiguous in meaning. It needs to be set to the primary blob storage endpoint but that can be determined from the blobs client anyway. To simplify the configuration this commit removes the `path` option and gets the endpoint from the blobs client instead. Closes #32225.
Diffstat (limited to 'activestorage/lib/active_storage/service/azure_storage_service.rb')
-rw-r--r--activestorage/lib/active_storage/service/azure_storage_service.rb16
1 files changed, 10 insertions, 6 deletions
diff --git a/activestorage/lib/active_storage/service/azure_storage_service.rb b/activestorage/lib/active_storage/service/azure_storage_service.rb
index 5682087469..ff6b2be135 100644
--- a/activestorage/lib/active_storage/service/azure_storage_service.rb
+++ b/activestorage/lib/active_storage/service/azure_storage_service.rb
@@ -8,14 +8,13 @@ module ActiveStorage
# Wraps the Microsoft Azure Storage Blob Service as an Active Storage service.
# See ActiveStorage::Service for the generic API documentation that applies to all services.
class Service::AzureStorageService < Service
- attr_reader :client, :path, :blobs, :container, :signer
+ attr_reader :client, :blobs, :container, :signer
- def initialize(path:, storage_account_name:, storage_access_key:, container:)
+ def initialize(storage_account_name:, storage_access_key:, container:)
@client = Azure::Storage::Client.create(storage_account_name: storage_account_name, storage_access_key: storage_access_key)
@signer = Azure::Storage::Core::Auth::SharedAccessSignature.new(storage_account_name, storage_access_key)
@blobs = client.blob_client
@container = container
- @path = path
end
def upload(key, io, checksum: nil)
@@ -87,6 +86,7 @@ module ActiveStorage
base_url = url_for(key)
generated_url = signer.signed_uri(
URI(base_url), false,
+ service: "b",
permissions: "r",
expiry: format_expiry(expires_in),
content_disposition: content_disposition_with(type: disposition, filename: filename),
@@ -102,8 +102,12 @@ module ActiveStorage
def url_for_direct_upload(key, expires_in:, content_type:, content_length:, checksum:)
instrument :url, key: key do |payload|
base_url = url_for(key)
- generated_url = signer.signed_uri(URI(base_url), false, permissions: "rw",
- expiry: format_expiry(expires_in)).to_s
+ generated_url = signer.signed_uri(
+ URI(base_url), false,
+ service: "b",
+ permissions: "rw",
+ expiry: format_expiry(expires_in)
+ ).to_s
payload[:url] = generated_url
@@ -117,7 +121,7 @@ module ActiveStorage
private
def url_for(key)
- "#{path}/#{container}/#{key}"
+ "#{blobs.host}/#{container}/#{key}"
end
def blob_for(key)