forked from pulumi/examples
-
Notifications
You must be signed in to change notification settings - Fork 0
/
SharedAccessSignature.cs
38 lines (37 loc) · 1.47 KB
/
SharedAccessSignature.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using Pulumi;
using Pulumi.Azure.Storage;
using Pulumi.Azure.Storage.Inputs;
public static class SharedAccessSignature
{
public static Output<string> SignedBlobReadUrl(ZipBlob blob, Account account)
{
return Output
.All<string>(account.Name, account.PrimaryConnectionString, blob.StorageContainerName, blob.Name)
.Apply(async values =>
{
string accountName = values[0];
string connectionString = values[1];
string containerName = values[2];
string blobName = values[3];
var sas = await Invokes.GetAccountBlobContainerSAS(
new GetAccountBlobContainerSASArgs
{
ConnectionString = connectionString,
ContainerName = containerName,
Start = "2019-01-01",
Expiry = "2100-01-01",
Permissions = new GetAccountBlobContainerSASPermissionsArgs
{
Read = true,
Write = false,
Delete = false,
List = false,
Add = false,
Create = false,
},
}
);
return $"https://{accountName}.blob.core.windows.net/{containerName}/{blobName}{sas.Sas}";
});
}
}