【问题标题】:Is there any command in Azure CLI similar to cat in bash script? GCP's gsutil has support for cat commandAzure CLI 中是否有类似于 bash 脚本中的 cat 的命令? GCP 的 gsutil 支持 cat 命令
【发布时间】:2021-08-11 16:50:00
【问题描述】:

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

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

示例代码:

gsutil cat $PATHOFBUCKETFILE

我想要类似的东西:

az storage blob .... cat $BLOBNAME

附:我不想想先在本地下载 blob,然后再读取内容。

【问题讨论】:

  • 如果不是很明显,任何实现这一点的命令都必须以某种方式下载内容。当然,如果它透明地执行此操作并且不会留下临时文件(尽管如果文件很大,缓存可能是个好主意)。
  • 没错没错。我只是希望它是透明的,而不是在本地保存然后将其删除。其次,文件是文本文件,不会太大。
  • @HamzaAzam 我认为这在今天是不可行的。欢迎在这里提出建议:github.com/Azure/azure-cli

标签: bash azure shell azure-cli


【解决方案1】:

这对我有用:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2023-02-06
    • 2019-09-14
    • 2012-03-20
    • 2012-10-08
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2018-05-31
    • 2013-06-05
    相关资源
    最近更新 更多