Sha256: 92ae261ac921b8af86b159687fa6bad205ba33e5d40dc6e6bb5322a31fa173d3

Contents?: true

Size: 1.29 KB

Versions: 53

Compression:

Stored size: 1.29 KB

Contents

module Fog
  module Storage
    class AzureRM
      # This class provides the actual implemention for service calls.
      class Real
        # Get an expiring http blob url from Azure blob storage
        #
        # @param container_name [String] Name of container containing blob
        # @param blob_name [String] Name of blob to get expiring url for
        # @param expires [Time] An expiry time for this url
        #
        # @return [String] - http url for blob
        #
        # @see https://msdn.microsoft.com/en-us/library/azure/mt584140.aspx
        #
        def get_blob_http_url(container_name, blob_name, expires)
          relative_path = "#{container_name}/#{blob_name}"
          params = {
            service: 'b',
            resource: 'b',
            permissions: 'r',
            expiry: expires.utc.iso8601
          }
          token = @signature_client.generate_service_sas_token(relative_path, params)
          uri = @blob_client.generate_uri(relative_path)
          url = "#{uri}?#{token}"
          url.gsub('https:', 'http:')
        end
      end

      # This class provides the mock implementation for unit tests.
      class Mock
        def get_blob_http_url(*)
          'http://sa.blob.core.windows.net/test_container/test_blob?token'
        end
      end
    end
  end
end

Version data entries

53 entries across 53 versions & 5 rubygems

Version Path
fog-azure-rm-0.6.0 lib/fog/azurerm/requests/storage/get_blob_http_url.rb
gitlab-fog-azure-rm-1.0.0 lib/fog/azurerm/requests/storage/get_blob_http_url.rb
gitlab-fog-azure-rm-0.9.0 lib/fog/azurerm/requests/storage/get_blob_http_url.rb
gitlab-fog-azure-rm-0.8.1 lib/fog/azurerm/requests/storage/get_blob_http_url.rb
gitlab-fog-azure-rm-0.8.0 lib/fog/azurerm/requests/storage/get_blob_http_url.rb
gitlab-fog-azure-rm-0.7.0 lib/fog/azurerm/requests/storage/get_blob_http_url.rb
gitlab-fog-azure-rm-0.6.0 lib/fog/azurerm/requests/storage/get_blob_http_url.rb
fog-azure-rm-0.5.3 lib/fog/azurerm/requests/storage/get_blob_http_url.rb
fog-azure-rm-0.5.2 lib/fog/azurerm/requests/storage/get_blob_http_url.rb
far-gem-0.5.6 lib/fog/azurerm/requests/storage/get_blob_http_url.rb
fog-azure-rm-0.5.1 lib/fog/azurerm/requests/storage/get_blob_http_url.rb
far-gem-0.5.5 lib/fog/azurerm/requests/storage/get_blob_http_url.rb
fog-azure-rm-0.5.0 lib/fog/azurerm/requests/storage/get_blob_http_url.rb
far-gem-0.5.4 lib/fog/azurerm/requests/storage/get_blob_http_url.rb
far-gem-0.5.3 lib/fog/azurerm/requests/storage/get_blob_http_url.rb
fog-azure-rm-0.4.9 lib/fog/azurerm/requests/storage/get_blob_http_url.rb
far-gem-0.5.2 lib/fog/azurerm/requests/storage/get_blob_http_url.rb
fog-azure-rm-0.4.8 lib/fog/azurerm/requests/storage/get_blob_http_url.rb
fog-azure-rm-0.4.7 lib/fog/azurerm/requests/storage/get_blob_http_url.rb
fog-azure-rm-0.4.6 lib/fog/azurerm/requests/storage/get_blob_http_url.rb