以编程方式生成SAS令牌C#

时间:2020-06-27 01:16:09

标签: .net azure

我已将文件1.txt从容器A复制到容器B。

只要容器是公共的,我还可以获得复制文件的完整URL,也可以在同一浏览器选项卡中打开它。

现在,我将容器设为私有。.我希望有一个简单的API,可以当场为我提供SAS URL和令牌。

有没有这样的API?

1 个答案:

答案 0 :(得分:4)

请尝试以下代码:

        Azure.Storage.Sas.BlobSasBuilder blobSasBuilder = new Azure.Storage.Sas.BlobSasBuilder()
        {
            BlobContainerName = "demo-copy",
            BlobName = "test.txt",
            ExpiresOn = DateTime.UtcNow.AddMinutes(5),//Let SAS token expire after 5 minutes.
        };
        blobSasBuilder.SetPermissions(Azure.Storage.Sas.BlobSasPermissions.Read);//User will only be able to read the blob and it's properties
        var sasToken = blobSasBuilder.ToSasQueryParameters(new StorageSharedKeyCredential(accountName, accountKey)).ToString();
        var sasUrl = blobClient.Uri.AbsoluteUri + "?" + sasToken;

基本上,您需要使用BlobSasBuilder类。