# Use the xbcloud binary with Microsoft Azure Cloud Storage
Implemented in Percona XtraBackup 8.0.27-19, the **xbcloud** binary adds support for the Microsoft Azure Cloud Storage using the REST API.
## Options
The following are the options, environment variables, and descriptions for uploading a backup to Azure using the REST API. The environment variables are recognized by **xbcloud**, which maps them automatically to the corresponding parameters:
| Option name | Environment variables | Description |
|------------------------------|-----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| --azure-storage-account=name | AZURE_STORAGE_ACCOUNT | An Azure storage account is a unique namespace to access and store your Azure data objects. |
| --azure-container-name=name | AZURE_CONTAINER_NAME | A container name is a valid DNS name that conforms to the Azure naming rules |
| --azure-access-key=name | AZURE_ACCESS_KEY | A generated key that can be used to authorize access to data in your account using the Shared Key authorization. |
| --azure-endpoint=name | AZURE_ENDPOINT | The endpoint allows clients to securely access data |
| --azure-tier-class=name | AZURE_STORAGE_CLASS | Cloud tier can decrease the local storage required while maintaining the performance. When enabled, this feature has the following categories:
Hot - Frequently accessed or modified data
Cool - Infrequently accessed or modified data
Archive - Rarely accessed or modified data |
Test your Azure applications with the [Azurite open-source emulator](https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azurite?tabs=visual-studio). For testing purposes, the **xbcloud** binary adds the `--azure-development-storage` option that uses the default `access_key` and `storage account` of azurite and `testcontainer` for the container. You can overwrite these options, if needed.
## Usage
All the available options for **xbcloud**, such as parallel,
max-retries, and others, can be used. For more information, see the
[xbcloud binary overview](xbcloud-binary-overview.md).
## Examples
An example of an **xbcloud** backup.
```{.bash data-prompt="$"}
$ xtrabackup --backup --stream=xbstream |
xbcloud put backup_name --azure-storage-account=pxbtesting --azure-access-key=$AZURE_KEY --azure-container-name=test --storage=azure
```
An example of restoring a backup from **xbcloud**.
```{.bash data-prompt="$"}
$ xbcloud get backup_name --azure-storage-account=pxbtesting
--azure-access-key=$AZURE_KEY --azure-container-name=test --storage=azure --parallel=10 2>download.log | xbstream -x -C restore
```
An example of deleting a backup from **xbcloud**.
```{.bash data-prompt="$"}
$ xbcloud delete backup_name --azure-storage-account=pxbtesting
--azure-access-key=$AZURE_KEY --azure-container-name=test --storage=azure
```
An example of using a shortcut restore.
```{.bash data-prompt="$"}
$ xbcloud get azure://operator-testing/bak22 ...
```