【问题标题】:AzCopy Sync command is failing on access key but passing on SAS key when container is privateAzCopy Sync 命令在访问密钥上失败,但在容器为私有时传递 SAS 密钥
【发布时间】:2020-12-24 16:43:31
【问题描述】:

我有 Azcopy 同步命令。当我使用 SAS 密钥时它通过了。但是当我使用访问密钥时失败。但是,当 blob 公开时,访问密钥有效。为什么 blob 为私有时访问密钥会失败?

我从所选网络中允许其 vnet 的 VM 运行命令。并且 blob 公共访问被禁用。

这就是我传递两个键的方式

"https://mystorage.blob.core.windows.net/container?sv=KEY"

这是我得到的错误

RESPONSE ERROR (ServiceCode=PublicAccessNotPermitted) =====
 RESPONSE Status: 409 Public access is not permitted on this storage account.

【问题讨论】:

  • 当您使用访问密钥执行此操作时能否提供您的命令?
  • @JimXu 编辑问题以添加密钥
  • 你有什么更新吗?
  • 我发布了一个新答案。请检查一下。

标签: azure azure-blob-storage


【解决方案1】:

当我们使用azcopy sync 命令在 Azure Blob 存储之间或 Azure Blob 和本地空间之间同步文件时,它不支持使用访问密钥进行身份验证。它只支持 SAS 或 OAuth 身份验证。更多详情请参考here

例如(我使用SAS认证)

  1. 通过 Azure 门户创建 sas 令牌

  2. 同步

azcopy sync '<local-directory-path>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>?<the sas token you copy in step1>' --recursive

【讨论】:

    【解决方案2】:

    根据您提供的信息,您希望使用azcopy 命令来同步具有共享访问签名的文件。如果是这样,共享访问签名应该类似于sv=2019-02-02&amp;ss=bf&amp;srt=s&amp;st=2019-08-01T22%3A18%3A26Z&amp;se=2019-08-10T02%3A23%3A26Z&amp;sr=b&amp;sp=rw&amp;spr=https&amp;sig=&lt;&gt;。更多详情请参考herehere

    例如

    1. 通过 Azure 门户创建 sas 令牌

    2. 同步

    azcopy sync '<local-directory-path>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>?<the sas token you copy in step1>' --recursive
    

    【讨论】:

    • “您想使用 azcopy 命令与共享访问签名同步文件”这是不正确的。这是有效的
    • @BlueClouds 你能告诉我你想实现什么吗?
    • 当 blob 为私有时使用访问密钥而不是 sas 密钥
    • @BlueClouds 命令azcopy sync 不支持使用访问密钥进行身份验证。更多详情请参考docs.microsoft.com/en-us/azure/storage/common/…
    • 这是我一直在寻找的答案。这可以作为答案发布吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    相关资源
    最近更新 更多