【发布时间】:2026-01-16 02:20:08
【问题描述】:
我正在使用 Premium/Hot、LRS、StorageV2 Azure 存储并尝试编写一个简单的字符串,但我不断收到身份验证错误。
为了在门户中生成容器的 SAS URI,我去了: 存储资源 -> 容器 -> 我的容器 -> 共享访问令牌 -> 生成 SAS 令牌和 URL
// SAS URI of blob container
var sasUriStr = "https://storageaccountname.blob.core.windows.net/containername?sp=r&st=2021-08-10T00:34:00Z&se=2021-08-15T08:34:00Z&spr=https&sv=2020-08-04&sr=c&sig=ABCDEFGH/YJKLMNOP=";
var uri = new Uri(sasUriStr);
var pageBlobClient = new PageBlobClient(uri);
pageBlobClient.UploadPages(new MemoryStream(Encoding.UTF8.GetBytes("hello world")), 0);
未处理的异常。 Azure.RequestFailedException:服务器未能 验证请求。确保 Authorization 标头的值 格式正确,包括签名。 时间:2021-08-12T20:22:44.0905117Z 状态:403(服务器失败 验证请求。确保 Authorization 标头的值 正确形成包括签名。)错误代码: 认证失败
附加信息:AuthenticationErrorDetail:签名没有 匹配。使用的签名字符串是 r
感谢任何帮助或提示。谢谢
更新:
将 /blob 名称添加到 SAS URI 后,我收到此错误:
Unhandled exception. Azure.RequestFailedException: The value for one of the HTTP headers is not in the correct format. RequestId:7a741951-401c-00c9-3ce3-8f5076000000 Time:2021-08-13T01:38:13.4585107Z Status: 400 (The value for one of the HTTP headers is not in the correct format.) ErrorCode: InvalidHeaderValue Additional Information: HeaderName: x-ms-range HeaderValue: bytes=0-10 Content: <?xml version="1.0" encoding="utf-8"?> <Error><Code>InvalidHeaderValue</Code><Message>The value for one of the HTTP headers is not in the correct format. RequestId:7a741951-401c-00c9-3ce3-8f5076000000 Time:2021-08-13T01:38:13.4585107Z</Message><HeaderName>x-ms-range</HeaderName><HeaderValue>bytes=0-10</HeaderValue></Error> Headers: Server: Windows-Azure-Blob/1.0,Microsoft-HTTPAPI/2.0 x-ms-error-code: InvalidHeaderValue x-ms-request-id: 7a741951-401c-00c9-3ce3-8f5076000000 x-ms-version: 2020-08-04 x-ms-client-request-id: 4366d771-7f70-4bbf-9677-6e9fcf3cb7a1 Date: Fri, 13 Aug 2021 01:38:12 GMT Content-Length: 327 Content-Type: application/xml
【问题讨论】:
-
请编辑您的问题并包含您正在使用的 SAS URL(对您的 SAS 令牌的帐户名称和签名部分进行混淆处理)。同时分享完整的错误信息。
-
我会尽快提供详细的答案,但您收到此错误的原因是您的 SAS URL 缺少 blob 名称。只需在“containername”和“?”之间插入 blob 名称你的代码应该可以正常工作。
-
@GauravMantri 你能提供详细信息吗?例如
.../containername_blobname?sp=1... -
…/containername/blobname?…..
-
放页面前请确保blob已经存在,否则会报404错误。
标签: azure azure-blob-storage azure-sdk-.net azure-sdk