Esempio n. 1
0
 public static Output <string> SignedBlobReadUrl(Blob 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 GetAccountBlobContainerSAS.InvokeAsync(
             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}";
     }));
 }
Esempio n. 2
0
        private static Output <string> GetSignedBlobUrl(Blob blob, Input <Account> storage)
        {
            const string signatureExpiration = "2100-01-01";

            var url = Output.All(new[] { storage.Apply(s => s.Name), storage.Apply(s => s.PrimaryConnectionString), blob.StorageContainerName, blob.Name })
                      .Apply(async(parameters) =>
            {
                var accountName      = parameters[0];
                var connectionString = parameters[1];
                var containerName    = parameters[2];
                var blobName         = parameters[3];

                var sas = await GetAccountBlobContainerSAS.InvokeAsync(new GetAccountBlobContainerSASArgs
                {
                    ConnectionString = connectionString,
                    ContainerName    = containerName,
                    Start            = "2020-07-20",
                    Expiry           = signatureExpiration,
                    Permissions      = new Pulumi.Azure.Storage.Inputs.GetAccountBlobContainerSASPermissionsArgs
                    {
                        Read   = true,
                        Write  = false,
                        Delete = false,
                        List   = false,
                        Add    = false,
                        Create = false
                    }
                });
                return($"https://{accountName}.blob.core.windows.net/{containerName}/{blobName}{sas.Sas}");
            });

            return(url);
        }