Understand how apps interact with Blob Storage data resources
As you build applications to work with data resources in Azure Blob Storage, your code primarily interacts with three resource types: storage accounts, containers, and blobs. This article explains these resource types and shows how they relate to one another. It also shows how application code uses the Azure Blob Storage client libraries to interact with these various resources.
Blob Storage resource types
The Azure Blob Storage client libraries allow you to interact with three types of resources in the storage service:
The following diagram shows the relationship between these resources:
Storage accounts
A storage account provides a unique namespace in Azure for your data. Every object that you store in Azure Storage has an address that includes your unique account name. The combination of the account name and the Blob Storage endpoint forms the base address for the objects in your storage account.
For example, if your storage account is named sampleaccount, then the default endpoint for Blob Storage is:
https://sampleaccount.blob.core.windows.net
To learn more about types of storage accounts, see Azure storage account overview.
Containers
A container organizes a set of blobs, similar to a directory in a file system. A storage account can include an unlimited number of containers, and a container can store an unlimited number of blobs.
The URI for a container is similar to:
https://sampleaccount.blob.core.windows.net/sample-container
For more information about naming containers, see Naming and Referencing Containers, Blobs, and Metadata.
Blobs
Azure Storage supports three types of blobs:
- Block blobs store text and binary data. Block blobs are made up of blocks of data that can be managed individually. Block blobs can store up to about 190.7 TiB.
- Append blobs are made up of blocks like block blobs, but are optimized for append operations. Append blobs are ideal for scenarios such as logging data from virtual machines.
- Page blobs store random access files up to 8 TiB in size. For more information about page blobs, see Overview of Azure page blobs
For more information about the different types of blobs, see Understanding Block Blobs, Append Blobs, and Page Blobs.
The URI for a blob is similar to:
https://sampleaccount.blob.core.windows.net/sample-container/sample-blob
For more information about naming blobs, see Naming and Referencing Containers, Blobs, and Metadata.
Work with data resources using the Azure SDK
The Azure SDKs contain libraries that build on top of the Azure REST API, allowing you to interact with REST API operations through familiar programming language paradigms. The SDKs are designed to simplify interactions between your application and Azure resources.
In the Azure Blob Storage client libraries, each resource type is represented by one or more associated classes. These classes provide operations to work with an Azure Storage resource.
The following table lists the basic classes, along with a brief description:
Class | Description |
---|---|
BlobServiceClient | Represents the storage account, and provides operations to retrieve and configure account properties, and to work with blob containers in the storage account. |
BlobContainerClient | Represents a specific blob container, and provides operations to work with the container and the blobs within. |
BlobClient | Represents a specific blob, and provides general operations to work with the blob, including operations to upload, download, delete, and create snapshots. |
AppendBlobClient | Represents an append blob, and provides operations specific to append blobs, such as appending log data. |
BlockBlobClient | Represents a block blob, and provides operations specific to block blobs, such as staging and then committing blocks of data. |
The following packages contain the classes used to work with Blob Storage data resources:
- Azure.Storage.Blobs: Contains the primary classes (client objects) that you can use to operate on the service, containers, and blobs.
- Azure.Storage.Blobs.Specialized: Contains classes that you can use to perform operations specific to a blob type, such as block blobs.
- Azure.Storage.Blobs.Models: All other utility classes, structures, and enumeration types.
Next steps
Working with Azure resources using the SDK begins with creating a client instance. To learn more about client object creation and management, see Create and manage client objects that interact with data resources.