通过浏览器访问 Azure 存储帐户容器 - 获取身份验证错误
Azure storage account container access via browser- Getting authenticating error
我们希望能够让一些用户访问一个容器,他们可以在浏览器中看到他们的文件列表,点击它们来阅读它们。
我创建了一个存储帐户。具有 public 访问权限的容器,在容器中创建了几个 blob,并将容器 public 访问级别设置为读取。
但是当我尝试在浏览器中访问该容器时,出现以下错误。我在存储资源管理器中为它创建了一个 SAS 令牌。
<Error>
<Code>AuthenticationFailed</Code>
<Message>Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. RequestId:9cb791c8-a01e-0016-625f-fe693a000000 Time:2021-02-08T21:16:09.2176268Z</Message>
<AuthenticationErrorDetail>Signature did not match. String to sign used was rl 2021-02-08T20:58:42Z 2021-03-09T20:58:00Z /blob/teststorageaccount21/$root 2019-12-12 c </AuthenticationErrorDetail>
</Error>
当我尝试访问该容器中的 blob 时,我可以毫无问题地访问它。
为什么我无法在具有 public 访问权限的容器级别看到 blob 列表。另外,我需要帮助来理解该身份验证错误。不确定哪个签名不匹配。
你的SAS
令牌是blob级别,你需要在容器级别生成SAS token
:
如果您在浏览器中按 https://<storage-account-name>.blob.core.windows.net/<container>?<sas-token>
列出 blob,您将收到错误消息:
<Error>
<Code>ContainerNotFound</Code>
<Message>The specified container does not exist. RequestId:54174bad-401e-0046-218e-fe53dd000000 Time:2021-02-09T02:52:30.1104394Z</Message>
</Error>
所以你需要使用List Blobs API,请使用这个格式URL:
https://<storage-account-name>.blob.core.windows.net/<container>?restype=container&comp=list&<sas-token>
我们希望能够让一些用户访问一个容器,他们可以在浏览器中看到他们的文件列表,点击它们来阅读它们。
我创建了一个存储帐户。具有 public 访问权限的容器,在容器中创建了几个 blob,并将容器 public 访问级别设置为读取。
但是当我尝试在浏览器中访问该容器时,出现以下错误。我在存储资源管理器中为它创建了一个 SAS 令牌。
<Error>
<Code>AuthenticationFailed</Code>
<Message>Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. RequestId:9cb791c8-a01e-0016-625f-fe693a000000 Time:2021-02-08T21:16:09.2176268Z</Message>
<AuthenticationErrorDetail>Signature did not match. String to sign used was rl 2021-02-08T20:58:42Z 2021-03-09T20:58:00Z /blob/teststorageaccount21/$root 2019-12-12 c </AuthenticationErrorDetail>
</Error>
当我尝试访问该容器中的 blob 时,我可以毫无问题地访问它。
为什么我无法在具有 public 访问权限的容器级别看到 blob 列表。另外,我需要帮助来理解该身份验证错误。不确定哪个签名不匹配。
你的SAS
令牌是blob级别,你需要在容器级别生成SAS token
:
如果您在浏览器中按 https://<storage-account-name>.blob.core.windows.net/<container>?<sas-token>
列出 blob,您将收到错误消息:
<Error>
<Code>ContainerNotFound</Code>
<Message>The specified container does not exist. RequestId:54174bad-401e-0046-218e-fe53dd000000 Time:2021-02-09T02:52:30.1104394Z</Message>
</Error>
所以你需要使用List Blobs API,请使用这个格式URL:
https://<storage-account-name>.blob.core.windows.net/<container>?restype=container&comp=list&<sas-token>