0

尝试使用 SAS 链接将文件上传到 Azure Blob 存储时出现错误。它是一个抱怨空 sp 属性的身份验证错误。奇怪的是 Sp 元素存在于 SAS Url 中。

这不是权限问题,因为我可以使用 ADF 使用相同的 SAS URL 上传文件。

网址

BlobEndpoint=https://####.blob.core.windows.net/####?sp=racwdl&st=2021-12-08T01:14:01Z&se=2022-02-28T09:14:01Z&spr=https&sv= 2020-08-04&sr=c&sig=####

错误详情

服务器未能验证请求。确保 Authorization 标头的值正确形成,包括签名。RequestId:ed57ec28-f01e-00a9-79d2-ebcfc2000000 Time:2021-12-08T01:22:40.1147833Z 状态:403(服务器未能验证请求。确保 Authorization 标头的值包含签名正确形成。)错误代码: 认证失败

附加信息:AuthenticationErrorDetail:sp 是必需的。不能为空

内容:AuthenticationFailed服务器未能验证请求。确保 Authorization 标头的值正确形成,包括签名。RequestId:ed57ec28-f01e-00a9-79d2-ebcfc2000000 时间:2021-12-08T01:22:40.1147833Zsp 是强制性的。不能为空

标头:x-ms-request-id:ed57ec28-f01e-00a9-79d2-ebcfc2000000 x-ms-error-code:AuthenticationFailed 内容长度:407 内容类型:应用程序/xml 日期:2021 年 12 月 8 日,星期三 01:22 :39 GMT 服务器:Microsoft-HTTPAPI/2.0

代码

Stream file = new FileStream(fileToUpload, FileMode.Open);
                var blobServiceClient1 = new BlobServiceClient(endpointString);
                var containerRef = blobServiceClient1.GetBlobContainerClient("dropoff-commissionstatements");
                var blob1 = containerRef.GetBlobClient("TDM_FINAL_102449_13092021_COMMSTMT_AR_TAL_D95337.csv");
                string file_extension = Path.GetExtension(fileToUpload);
                string filename_withExtension = Path.GetFileName(fileToUpload);
                blob1.Upload(file);
4

1 回答 1

1

请尝试将您的连接字符串更改为:

BlobEndpoint=https://####.blob.core.windows.net/####; SharedAccessSignature=sp=racwdl&st=2021-12-08T01:14:01Z&se=2022-02-28T09:14:01Z&spr=https&sv=2020-08-04&sr=c&sig=####

有关更多详细信息,请参阅此链接:https ://docs.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string#create-a-connection-string-using-a-shared -访问签名

于 2021-12-08T05:51:56.960 回答