首页 > 解决方案 > Azure CLI 中是否有类似于 bash 脚本中的 cat 的命令?GCP 的 gsutil 支持 cat 命令

问题描述

我是使用 Linux 和云 shell 编写 shell 脚本的初学者。我实际上是在使用 GCP 的 gsutil 命令和 cat 来执行诸如读取存储桶文件的某些内容之类的操作,效果很好。

我想对 Azure blob 执行相同的操作,但 Azure CLI 不支持任何类似的命令。

示例代码:

gsutil cat $PATHOFBUCKETFILE

我想要类似的东西:

az storage blob .... cat $BLOBNAME

PS我不想先在本地下载blob然后再阅读内容。

标签: bashazureshellazure-cli

解决方案


这对我有用:

az storage fs file download \
  --account-name "${STORAGE_ACCOUNT_NAME}" \
  --file-system "${CONTAINER_NAME}" \
  --path "${BLOB_NAME}" \
  --destination /dev/stdout

有关详细信息,请参阅az storage fs file文档

另一种适用于 Azure blob URL 的选项是使用azcopy copy( docs ),如下所示:

azcopy copy \
  --from-to BlobPipe \
  https://${STORAGE_ACCOUNT_NAME}.blob.core.windows.net/${CONTAINER_NAME}/${BLOB_NAME}

但是为此,您至少需要“存储 Blob 数据读取器”角色。贡献者角色足以使用azCLI 读取文件,但不能使用azcopy. 如果至少没有此权限,您将收到错误“403 此请求无权使用此权限执行此操作。”。有关详细信息,请参阅这些 github 问题Azure/azure-storage-azcopy#790Azure/azure-storage-azcopy#499


推荐阅读