在这件事上有点麻烦。 在遵循Microsoft文档中的示例后,我得到了一个SAS令牌,但遇到了SAS令牌未经过身份验证的问题。string sastoken = "";
BlobServiceClient blobServiceClient = new BlobServiceClient("DefaultEndpointsProtocol=https;AccountName=accountname;AccountKey=accountkey;EndpointSuffix=core.windows.net");
string containerName = containername;
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);
BlobSasBuilder sasBuilder = new BlobSasBuilder()
{
ExpiresOn = DateTime.UtcNow + (new TimeSpan(24, 0, 0)),
BlobContainerName = containerName,
BlobName = imageData.filename,
Resource = "b"
};
sasBuilder.SetPermissions(BlobSasPermissions.Read);
sastoken = sasBuilder.ToSasQueryParameters(new StorageSharedKeyCredential(containername, credentialkey)).ToString();
UriBuilder fulluri = new UriBuilder()
{
Scheme = "https",
Host = string.Format("{0}.blob.core.windows.net", containername),
Path = string.Format("{0}/{1}", "blobtest", "file.bmp"),
Query = sastoken
};
imageData.url = fulluri.Uri.ToString();
imageData.url返回为:https://accountname.blob.core.windows.net/containername/file.bmp?sv=2019-07-07&se=2020-07-10t14%3a54%3a43z&sr=b&sp=r&sig=UXVC7SAXQTSVGFXJ6l%2boiintMHQJ%2f3nh95v%2flrVM8g%3D
我得到了一个身份验证错误,但是SAS令牌的全部作用就是提供身份验证。 我肯定我漏掉了什么,但没有发现我犯错的地方。 我找到的大多数信息都与Microsoft.Azure.Storage包有关,而不是与Azure.Storage.Blob命名空间有关。 欢迎任何帮助或建议。 谢啦!