快速入门:使用 Azure CLI 上传、下载和列出 Blob

Azure CLI 是 Azure 的命令行体验,用于管理 Azure 资源。 可以将其安装在 macOS、Linux 和 Windows 上,然后从命令行运行它。 本快速入门介绍了如何使用 Azure CLI 通过 Azure Blob 存储来上传和下载数据。

先决条件

若要访问 Azure 存储,需要一个 Azure 订阅。 如果还没有订阅,则在开始前创建一个 1 元人民币的试用帐户

对 Azure 存储进行的所有访问都要通过存储帐户完成。 对于本快速入门,请使用 Azure 门户、Azure PowerShell 或 Azure CLI 创建存储帐户。 有关如何创建帐户的帮助,请参阅创建存储帐户

本快速入门需要运行 Azure CLI 2.0.4 或更高版本。 运行 az --version 即可确定你的版本。 如需进行安装或升级,请参阅安装 Azure CLI

创建资源组

使用 az group create 命令创建 Azure 资源组。 资源组是在其中部署和管理 Azure 资源的逻辑容器。

az group create \
    --name myResourceGroup \
    --location "China East"

创建存储帐户

使用 az storage account create 命令创建常规用途存储帐户。 常规用途的存储帐户可用于以下四种服务:Blob、文件、表和队列。

az storage account create \
    --name mystorageaccount \
    --resource-group myResourceGroup \
    --location "China East" \
    --sku Standard_LRS \
    --encryption blob

指定存储帐户凭据

Azure CLI 需要存储帐户凭据才能执行本教程的大部分命令。 提供凭据的选项有多种,其中最简单方法之一是设置 AZURE_STORAGE_ACCOUNTAZURE_STORAGE_ACCESS_KEY 环境变量。

首先,使用 az storage account keys list 命令显示存储帐户密钥:

az storage account keys list \
    --account-name mystorageaccount \
    --resource-group myResourceGroup \
    --output table

现在,设置 AZURE_STORAGE_ACCOUNTAZURE_STORAGE_ACCESS_KEY 环境变量。 可以通过使用 export 命令在 Bash Shell 中完成此操作:

export AZURE_STORAGE_ACCOUNT="mystorageaccountname"
export AZURE_STORAGE_ACCESS_KEY="myStorageAccountKey"

创建容器

始终将 Blob 上传到容器中。 可以整理 Blob 组,就像在计算机的文件夹中整理文件一样。

可以使用 az storage container create 命令创建用于存储 blob 的容器。

az storage container create --name mystoragecontainer

上传 blob

Blob 存储支持块 blob、追加 blob 和页 blob。 存储在 Blob 存储中的大多数文件都存储为块 blob。 必须将数据添加到现有的 blob 中且不能修改该 blob 的现有内容时(例如进行日志记录时),使用追加 blob。 页 blob 支持 IaaS 虚拟机的 VHD 文件。

首先,创建要上传到 Blob 的文件。 可以使用以下方法来创建文件:vi helloworld 当文件打开时,按“插入”,键入“Hello world”,按 Esc 并输入 :x,然后按 Enter

此示例使用 az storage blob upload 命令将 Blob 上传到在上一个步骤中创建的容器中。

az storage blob upload \
    --container-name mystoragecontainer \
    --name blobName \
    --file ~/path/to/local/file

如果使用了上述方法创建文件,则可改用此 CLI 命令(请注意,不需指定路径,因为此文件是在基目录创建的,而通常是需要指定路径的):

az storage blob upload \
    --container-name mystoragecontainer \
    --name helloworld
    --file helloworld

此操作将创建 Blob(如果该 Blob 尚不存在),或者覆盖 Blob(如果该 Blob 已存在)。 上传尽可能多的文件,然后继续操作。

若要同时上传多个文件,则可使用 az storage blob upload-batch 命令。

列出容器中的 Blob

使用 az storage blob list 命令列出容器中的 blob。

az storage blob list \
    --container-name mystoragecontainer \
    --output table

下载 Blob

使用 az storage blob download 命令下载之前上传的 Blob。

az storage blob download \
    --container-name mystoragecontainer \
    --name blobName \
    --file ~/destination/path/for/file

使用 AzCopy 传输数据

若要按可编写脚本的方式高性能地传输 Azure 存储中的数据,还可使用 AzCopy 实用工具。 可使用 AzCopy 将数据传输到 Blob、文件和表存储或将数据从中传出。

作为一个快速示例,下面是用于将名为 myfile.txt 的文件上传到 mystoragecontainer 容器中的 AzCopy 命令。

azcopy \
    --source /mnt/myfiles \
    --destination https://mystorageaccount.blob.core.chinacloudapi.cn/mystoragecontainer \
    --dest-key <storage-account-access-key> \
    --include "myfile.txt"

清理资源

如果不再需要你的资源组中的任何一个资源(包括使用本教程创建的存储帐户),可使用 az group delete 命令删除该资源组。

az group delete --name myResourceGroup

后续步骤

在此快速入门教程中,介绍了如何在本地磁盘和 Azure Blob 存储中的容器之间传输文件。 若要详细了解如何使用 Azure 存储中的 blob,请继续通过本教程了解如何使用 Azure Blob 存储。