Provides AzureBlobStorageSource and AzureBlobStorageCache.
AzureBlobStorageSource maps a URL identifier to a Microsoft Azure Blob Storage blob.
BasicLookupStrategy locates images by passing the URL identifier as-is to the Blob Storage endpoint, with no additional configuration possible.
When your URL identifiers don't match your blob keys, ScriptLookupStrategy is available to tell AzureBlobStorageSource to capture the blob key returned by a method in your delegate class.
This delegate method, azureblobstoragesource_blob_info()
, should return a hash containing container
and name
keys, if an object is available, or nil
if not.
Like all sources, AzureBlobStorageSource needs to be able to figure out the format of a source image before it can be served. It uses the following strategy to do this:
HEAD
request is sent. If a Content-Type
header is present in the response, and is specific enough (i.e. not application/octet-stream
), a format is inferred from that.GET
request is sent with a Range
header specifying a small range of data from the beginning of the resource, and a format is inferred from the magic bytes in the response body.This source supports random access using HTTP Range
headers. See the HTTPSource section of the guide for an explanation of this feature.
AzureBlobStorageCache caches variant images and metadata into a Microsoft Azure Blob Storage container.
AzureBlobStorageSource and AzureBlobStorageCache support a variety of authentication methods:
azureblobstoragesource_blob_info()
delegate method.config.yml
file, shared key
authentication will be used using that key.DefaultAzureCredential
class in the Azure SDK—see its documentation for more information.Use the plugin installer:
bin/install_plugin.sh galia-plugin-azurestorage
Alternatively, download the plugin directly and extract it into Galia's plugins directory.
Copy the keys from config.yml.sample
into your application configuration
file and fill them in.
Copy the azureblobstoragesource_blob_info()
method from delegates.rb.sample
into your delegate script file, and implement it there.
If you would like to use AzureBlobStorageCache, you must tell Galia to use it as the variant cache and/or info cache by editing the following keys in your application configuration file:
cache.server.variant.enabled: true
cache.server.variant.implementation: AzureBlobStorageCache
cache.server.info.enabled: true
cache.server.info.implementation: AzureBlobStorageCache