Dan*_*ton 5 .net c# azure-storage azure-blob-storage shared-access-signatures
我的应用程序允许用户输入 Azure Blob 存储 SAS URL。我将如何去验证它?我正在使用Azure 存储 Blob 客户端库,并且似乎没有任何方法可以在不实际执行 Blob 操作(我不想这样做)的情况下验证 SAS URL。
验证操作可以是异步的,并在必要时涉及 API 调用(即可以通过按钮触发)。
public class SASURLValidator
{
public async Task<bool> ValidateSASURL(string sasURL)
{
// What goes here?
}
public async Task Test()
{
var result = await ValidateSASURL("https://blobstorageaccountname.blob.core.windows.net/containerName?sp=w&st=2022-02-15T02:07:49Z&se=2022-03-15T10:07:49Z&spr=https&sv=2020-08-04&sr=c&sig=JDFJEF342JDSFJIERJsdjfkajiwSKDFJIQWJIFJSKDFJWE%3D")
// result should be true if the above is a valid SAS
}
}
Run Code Online (Sandbox Code Playgroud)
您可以测试列表或写入和删除访问权限。根据您的情况,您可以同时使用两者。也可以修改样本进行测试。对单个文件的读取访问权限。
private async Task TestSasAsync(String uri, bool testWriteAndDelete, bool testList)
{
try
{
var cloudBlobContainer = new CloudBlobContainer(new Uri(uri));
if (testList)
{
foreach (var blob in cloudBlobContainer.ListBlobs())
{
Console.WriteLine(blob.Uri);
}
}
if (testWriteAndDelete)
{
var blockBlob = cloudBlobContainer.GetBlockBlobReference("testBlob.txt");
await blockBlob.UploadTextAsync("Hello world");
await blockBlob.DeleteAsync();
}
}
catch (Exception ex)
{
throw new Exception("Failed to validate SAS Uri: " + ex.Message, ex);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3293 次 |
最近记录: |