Azure Blob Storage V1 Binary Provider

Configure azure-blob-storage-direct or azure-blob-storage templates for single-node Azure Blob Storage deployments.

The azure-blob-storage provider is used for configuring Azure Blob Storage as the remote filestore.

This binary provider uses the following set of parameters.

Parameter

Description

testConnection

Default: true

When true, Artifactory uploads and downloads a file when starting up to verify that the connection to the cloud storage provider is fully functional.

accountName

The storage account can be a General-purpose storage account or a Blob storage account which is specialized for storing objects/blobs.

Your cloud storage provider identity.

accountKey

Your cloud storage provider authentication credential.

containerName

Your globally unique container name on Azure Blob Storage.

endpoint

The hostname. You should only use the default value unless you need to contact a different endpoint for testing or production purposes.

Note: if the endpoint is not defined in the xml file it will be automatically generated with the default https://<ACCOUNT_NAME>.blob.core.windows.net value.

📘

Azure Endpoints: Supported JFrog Subscriptions

The Azure blob.core.windows.net endpoint is supported for all JFrog subscriptions. Additional endpoints require Enterprise and Enterprise+ subscriptions.

httpsOnly

Default: true.

When true, the cloud binary provider can be accessed using a secure HTTPS connection.

binariesDir

The directory to store the artifacts.

Applicable for direct upload only.

The default is $JFROG_HOME/artifactory/var/data/artifactory/filestore.

tempDir

The temporary directory to store the artifacts during upload.

Applicable for direct upload only.

You must configure the Azure Blob Storage provider with parameters specific to your account (but can leave all other parameters with the recommended values).

The snippets below show the basic template configuration and examples that use the Azure Blob Storage binary provider.

Azure Direct Upload V1 Template (Recommended)

The Azure direct (or eventual-less) template allows direct uploading to Azure, bypassing the eventual upload mechanism. For more information, see Direct (Eventual-less) versus Eventual Upload Mechanism.

The following example shows a template modified to support Azure direct upload.

<config version="3">
    <chain template="azure-blob-storage-direct"/>
    <provider type="cache-fs" id="cache-fs">
        <cacheProviderDir>/var/opt/jfrog/artifactory/data/cache</cacheProviderDir> 
        <maxCacheSize>10000000000</maxCacheSize>
    </provider>
    <provider id="azure-blob-storage" type="azure-blob-storage">
        <accountName>myaccount</accountName>
        <accountKey>somekey</accountKey>
        <endpoint>https://artifactoryhaprod.blob.core.windows.net/</endpoint>
        <containerName>mycontainer</containerName> 
        <multiPartLimit>256000000</multiPartLimit>
        <multipartElementSize>100000000</multipartElementSize>
    </provider>   
</config>

What's in the template?

The following snippet shows the default chain that uses azure-blob-storage-direct as the binary provider:

<config version="1">
    <chain> <!-- template="azure-blob-storage-direct" -->
        <provider id="cache-fs" type="cache-fs">
            <provider id="azure-blob-storage" type="azure-blob-storage"/>
        </provider>
    </chain>
</config>

For details about the cache-fs provider, see Cached Filesystem Binary Provider.

Azure Eventual Upload Template

The following example shows a template modified to support Azure eventual upload.

 <config version="1">
    <chain template="azure-blob-storage"/>
    <provider id="azure-blob-storage" type="azure-blob-storage">
        <accountName>XXXXXXXX</accountName>
        <accountKey>XXXXXXXX</accountKey>
        <endpoint>https://<ACCOUNT_NAME>.blob.core.windows.net/</endpoint>
        <containerName><NAME></containerName>
    </provider>
</config>

What's in the template?

The following snippet shows the default chain that uses azure-blob-storage as the binary provider:

<config version="1">
        <chain> <!-- template="azure-blob-storage" -->
            <provider id="cache-fs" type="cache-fs">
                <provider id="eventual" type="eventual">
                    <provider id="retry" type="retry">
                        <provider id="azure-blob-storage" type="azure-blob-storage"/>
                    </provider>
                </provider>
            </provider>
        </chain>
</config>

For details about the cache-fs provider, see Cached Filesystem Binary Provider.

For details about the eventual provider, see Eventual Binary Provider.

For details about the retry provider, see Retry Binary Provider.

Frequently Asked Questions
Q: What is the default container parameter name in the Azure V1 provider?

A: The V1 provider uses containerName (not container). This is your globally unique container name on Azure Blob Storage and must be set to identify the storage container.

Q: What is the default endpoint format if none is specified for Azure V1?

A: If the endpoint parameter is not defined in binarystore.xml, it is automatically generated as https://ACCOUNT_NAME.blob.core.windows.net. The blob.core.windows.net endpoint is supported for all JFrog subscriptions; additional endpoints require Enterprise or Enterprise+ subscriptions.

Q: Does the Azure V1 binary provider verify the storage connection at startup?

A: Yes. When testConnection is set to true (the default), Artifactory uploads and downloads a file at startup to verify that the connection to Azure Blob Storage is fully functional.

Q: Which upload template is recommended for Azure V1?

A: The azure-blob-storage-direct template is recommended. It uploads directly to Azure, bypassing the eventual upload mechanism, and is backed by a cache-fs layer for local caching. See Filestore Configuration for the full list of available chain templates.