你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:使用 Azure CLI 创建、下载和列出 blob
Azure CLI 是 Azure 的命令行体验,用于管理 Azure 资源。 可以在浏览器中将它与 Azure Cloud Shell 配合使用。 也可将它安装在 macOS、Linux 或 Windows 上,然后从命令行运行它。 本快速入门介绍了如何使用 Azure CLI 通过 Azure Blob 存储来上传和下载数据。
先决条件
若要访问 Azure 存储,需要一个 Azure 订阅。 如果还没有订阅,请在开始前创建一个免费帐户。
对 Azure 存储进行的所有访问都要通过存储帐户完成。 对于本快速入门,请使用 Azure 门户、Azure PowerShell 或 Azure CLI 创建存储帐户。 有关如何创建存储帐户的帮助,请参阅创建存储帐户。
为 Azure CLI 准备环境
在 Azure Cloud Shell 中使用 Bash 环境。 有关详细信息,请参阅 Azure Cloud Shell 中的 Bash 快速入门。
如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录。
出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展。
运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade。
- 本文需要 Azure CLI 版本 2.0.46 或更高版本。 如果使用 Azure Cloud Shell,则最新版本已安装。
授予对 Blob 存储的访问权限
可以使用 Microsoft Entra 凭据或存储帐户访问密钥通过 Azure CLI 授予对 Blob 存储的访问权限。 建议使用 Microsoft Entra 凭据。 本文介绍如何使用 Microsoft Entra ID 授权 Blob 存储操作。
与针对 Blob 存储的数据操作相对应的 Azure CLI 命令支持 --auth-mode
参数,该参数用于指定如何授权给定操作。 将 --auth-mode
参数设置为 login
,使用 Microsoft Entra 凭据进行授权。 有关详细信息,请参阅使用 Azure CLI 授权访问 blob 或队列数据。
仅 Blob 存储数据操作支持 --auth-mode
参数。 管理操作(例如创建资源组或存储帐户)会自动将 Microsoft Entra 凭据用于授权。
若要开始,请使用 az login 登录到 Azure 帐户。
az login
创建资源组
使用 az group create 命令创建 Azure 资源组。 资源组是在其中部署和管理 Azure 资源的逻辑容器。
请务必将尖括号中的占位符值替换为你自己的值:
az group create \
--name <resource-group> \
--location <location>
创建存储帐户
使用 az storage account create 命令创建常规用途存储帐户。 常规用途的存储帐户可用于以下四种服务:Blob、文件、表和队列。
请务必将尖括号中的占位符值替换为你自己的值:
az storage account create \
--name <storage-account> \
--resource-group <resource-group> \
--location <location> \
--sku Standard_ZRS \
--encryption-services blob
创建容器
始终将 Blob 上传到容器中。 可以在容器中整理 Blob 组,就像在计算机的文件夹中整理文件一样。 可以使用 az storage container create 命令创建用于存储 blob 的容器。
下面的示例使用 Microsoft Entra 帐户来授权操作创建容器。 创建容器之前,请将存储 Blob 数据参与者角色分配给自己。 即使你是帐户所有者,也需要显式权限才能对存储帐户执行数据操作。 有关分配 Azure 角色的详细信息,请参阅分配用于访问 Blob 数据的 Azure 角色。
请务必将尖括号中的占位符值替换为你自己的值:
az ad signed-in-user show --query id -o tsv | az role assignment create \
--role "Storage Blob Data Contributor" \
--assignee @- \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>"
az storage container create \
--account-name <storage-account> \
--name <container> \
--auth-mode login
重要
传播 Azure 角色分配可能需要花费几分钟时间。
你还可以使用存储帐户密钥来授权操作创建容器。 有关使用 Azure CLI 授权数据操作的详细信息,请参阅使用 Azure CLI 授权访问 blob 或队列数据。
上传 blob
Blob 存储支持块 blob、追加 blob 和页 blob。 本快速入门中的示例介绍如何使用块 blob。
首先,创建要上传到块 blob 的文件。 如果使用的是 Azure Cloud Shell,请使用以下命令创建文件:
vi helloworld
打开该文件后,按“插入”。 键入“Hello world”,并按“Esc”。接下来,键入“:x”,然后按“Enter”。
此示例使用 az storage blob upload 命令将 Blob 上传到在上一个步骤中创建的容器中。 由于文件是在根目录下创建的,因此无需指定文件路径。 请务必将尖括号中的占位符值替换为你自己的值:
az storage blob upload \
--account-name <storage-account> \
--container-name <container> \
--name myFile.txt \
--file myFile.txt \
--auth-mode login
此操作将创建 Blob(如果该 Blob 尚不存在),或者覆盖 Blob(如果该 Blob 已存在)。 上传尽可能多的文件,然后继续操作。
使用 Azure CLI 上传 Blob 时,它会通过 http 和 https 协议发出相应的 REST API 调用。
若要同时上传多个文件,则可使用 az storage blob upload-batch 命令。
列出容器中的 Blob
使用 az storage blob list 命令列出容器中的 blob。 请务必将尖括号中的占位符值替换为你自己的值:
az storage blob list \
--account-name <storage-account> \
--container-name <container> \
--output table \
--auth-mode login
下载 Blob
使用 az storage blob download 命令下载之前上传的 Blob。 请务必将尖括号中的占位符值替换为你自己的值:
az storage blob download \
--account-name <storage-account> \
--container-name <container> \
--name myFile.txt \
--file <~/destination/path/for/file> \
--auth-mode login
使用 AzCopy 传输数据
AzCopy 命令行实用程序提供适用于 Azure 存储的高性能且可编写脚本的数据传输。 可使用 AzCopy 将数据传输到 Blob 存储和 Azure 文件存储,或将数据从其中传出。 有关 AzCopy v10(最新版 AzCopy)的详细信息,请参阅 AzCopy 入门。 若要了解如何将 AzCopy v10 与 Blob 存储配合使用,请参阅使用 AzCopy 和 Blob 存储传输数据。
以下示例使用 AzCopy 将本地文件上传到 blob。 请务必将示例值替换为你自己的值:
azcopy login
azcopy copy 'C:\myDirectory\myFile.txt' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myFile.txt'
清理资源
若要删除在本快速入门中创建的资源(包括存储帐户),请使用 az group delete 命令删除资源组。 请务必将尖括号中的占位符值替换为你自己的值:
az group delete \
--name <resource-group> \
--no-wait
后续步骤
在此快速入门中,你了解了如何在本地文件系统和 Azure Blob 存储中的容器之间传输文件。 若要详细了解如何使用 Azure CLI 来处理 Blob 存储,请选择下面某个选项。