![Azure - 尝试获取 Blob 列表时,服务器无法验证请求](https://linux22.com/image/709318/Azure%20-%20%E5%B0%9D%E8%AF%95%E8%8E%B7%E5%8F%96%20Blob%20%E5%88%97%E8%A1%A8%E6%97%B6%EF%BC%8C%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%97%A0%E6%B3%95%E9%AA%8C%E8%AF%81%E8%AF%B7%E6%B1%82.png)
您好,您能帮我回答以下问题吗?
我正在尝试使用 zaure cli v1 从特定容器中获取 blob 列表。以下是我遵循的步骤:
1) azure login
2) Login via browser
3) from the command line: azure storage blob list \
--container "container_name" -a "storage_account_name" -k $(cat ./storage_account_name.key)
storage_account_name.key - 具有存储帐户的实际访问密钥。当我从 CLI 运行该命令时,出现以下错误:
info: Executing command storage blob list
|error: Server failed to authenticate the request. Make sure the value of
Authorization header is formed correctly including the signature.
RequestId:<ID of the request>
Time:2017-08-18T13:34:53.3484100Z
error: Error information has been recorded to /root/.azure/azure.err
你能告诉我我做错了什么吗?提前谢谢你,Alex
答案1
如果您想列出存储帐户中的 blob,您首先需要为您的存储帐户和密钥设置两个变量。
export AZURE_STORAGE_ACCOUNT=<storage_account_name>
export AZURE_STORAGE_ACCESS_KEY=<storage_account_key>
请参考此链接:将 Azure CLI 1.0 与 Azure 存储结合使用。
更新:
你的命令对我有用。
root@shui:~# azure storage blob list --container "vhds" -a "shuihvdiag182" -k $(cat ./storage_account_name.key)
info: Executing command storage blob list
+ Getting blobs in container vhds
data: Name Blob Type Length Content Type Last Modified Snapshot Time
data: ------------------ --------- ------ ------------------------ ----------------------------- -------------
data: Availabilityset.sh BlockBlob 1180 application/octet-stream Tue, 22 Aug 2017 02:13:01 GMT
info: storage blob list command OK
我的配置storage_account_name.key
如下:
aj5tKjaWBCGemBJ+gEmlCFLNP+/1zNgwuPDE+dDkKCXjoRCgdggmwCNDZheMmK8+gRiHUS+qR7NMkWfx5n8tjw==
我建议您可以检查存储帐户密钥是否已过期。我建议您可以重新生成密钥并重试。
更新 2:
当我使用错误访问密钥时,我遇到了相同的错误日志。您不需要登录您的 Azure 帐户,使用storage account name
+access key
可以列出容器中的 blob。我建议您可以在 Portal 上查看它们。