Pulse7
8/10/2017 - 4:23 PM

Azure Storage upload and retrieve file from private container, sas saspolicy

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