Upload Blobs to Azure Storage

This document provides guidance on uploading blobs to Azure Blob Storage using various methods. It covers SDKs, Azure CLI, and Azure Storage Explorer.

Overview

Azure Blob Storage is a massively scalable object store for cloud-native applications. Uploading blobs is a fundamental operation for storing unstructured data such as documents, images, videos, and backups. This guide focuses on the different ways you can achieve this.

Prerequisites

Before you begin, ensure you have the following:

Methods for Uploading Blobs

1. Using Azure Storage SDKs

The Azure Storage SDKs provide a programmatic way to interact with Azure Storage services. They are available for multiple languages including .NET, Java, Python, Node.js, and Go.

Example: Uploading a blob with Python SDK


upload_blob.py
from azure.storage.blob import BlobServiceClient, __version__ as blob_version

# Replace with your actual connection string
connect_str = "YOUR_AZURE_STORAGE_CONNECTION_STRING"
container_name = "my-container"
local_file_path = "path/to/your/local/file.txt"
blob_name = "my-blob-name.txt"

try:
    # Create the BlobServiceClient object
    blob_service_client = BlobServiceClient.from_connection_string(connect_str)

    # Get a client to interact with a specific blob
    blob_client = blob_service_client.get_blob_client(container=container_name, blob=blob_name)

    print(f"Uploading {local_file_path} to {blob_name}...")

    with open(local_file_path, "rb") as data:
        blob_client.upload_blob(data)

    print(f"Successfully uploaded {blob_name}.")
    print(f"Blob URL: {blob_client.url}")

except Exception as ex:
    print('Exception:')
    print(ex)
            

2. Using Azure CLI

The Azure Command-Line Interface (CLI) offers a simple way to manage Azure resources, including uploading blobs.

Upload a blob using Azure CLI


az storage blob upload
az storage blob upload \
    --account-name <your-storage-account-name> \
    --container-name <your-container-name> \
    --name <blob-name> \
    --file <path-to-local-file> \
    --auth-mode login 
    # Or use --connection-string "YOUR_AZURE_STORAGE_CONNECTION_STRING"
            
Authentication: When using --auth-mode login, ensure you are logged in via az login and have the necessary permissions for the storage account.

3. Using Azure Storage Explorer

Azure Storage Explorer is a free, cross-platform application that enables you to easily manage your Azure cloud storage resources from your desktop.

  1. Download and install Azure Storage Explorer.
  2. Connect to your Azure subscription or provide connection details for your storage account.
  3. Navigate to your desired container.
  4. Click the "Upload" button and select "Upload Files..." or "Upload Folder...".
  5. Choose the file(s) or folder you wish to upload.

Storage Explorer provides a visual interface and is excellent for quick uploads, downloads, and managing your storage data.

Uploading Large Blobs

For very large files, consider using the block blob upload API, which supports chunking and resuming uploads. The SDKs and Azure CLI typically handle this automatically for block blobs.

Block Blob Upload Scenarios

Best Practices

For production scenarios, it's highly recommended to use the Azure SDKs to manage blob uploads programmatically. This allows for error handling, retry logic, and integration with your applications.