Azure Storage upload and retrieve file from private container, sas saspolicy
public class ImageStore
{
Uri storageUri;
CloudBlobClient client;
CloudBlobContainer container;
public ImageStore()
{
storageUri = new Uri("https://kmstorage7.blob.core.windows.net/");
client = new CloudBlobClient(storageUri,new StorageCredentials("kmstorage7", "zhiOjbEckpyREDUWKLABZ5UDMsr5BjaP1j9snQXmzCZ9LJ4P+Gm1UpIiX7cBhBdT5VJ4f+gZ5kiw2Qo+8TgqIA=="));
container = client.GetContainerReference("images");
}
public async Task<string> Save(Stream stream)
{
string imageId = Guid.NewGuid().ToString();
var blob=container.GetBlockBlobReference(imageId);
await blob.UploadFromStreamAsync(stream);
return imageId;
}
public Uri GetUri(string imageId)
{
var blob = container.GetBlockBlobReference(imageId);
var sasPolicy = new SharedAccessBlobPolicy()
{
Permissions = SharedAccessBlobPermissions.Read | SharedAccessBlobPermissions.Write,
SharedAccessStartTime = DateTime.Now.AddMinutes(-15),
SharedAccessExpiryTime = DateTime.Now.AddMinutes(30)
};
string sas=blob.GetSharedAccessSignature(sasPolicy);
return new Uri(storageUri, $"/images/{imageId}{sas}");
}
}
Microsoft.WindowsAzure.Storage