private static async Task <string> CreateBlob(TokenAcquisitionTokenCredential tokenCredential) { Uri blobUri = new Uri("https://blobstorageazuread123.blob.core.windows.net/sample-container/Blob1.txt"); BlobClient blobClient = new BlobClient(blobUri, tokenCredential); string blobContents = "Blob created by Azure AD authenticated user."; byte[] byteArray = Encoding.ASCII.GetBytes(blobContents); using (MemoryStream stream = new MemoryStream(byteArray)) { await blobClient.UploadAsync(stream); } return("Blob successfully created"); }
private static async Task <string> CreateBlob(TokenAcquisitionTokenCredential tokenCredential, IFormFile file) { Uri blobUri = new Uri("https://cshuicantonresturant.blob.core.windows.net/testclient/" + file.FileName); BlobClient blobClient = new BlobClient(blobUri, tokenCredential); // string blobContents = "Blob created by Azure AD authenticated user."; // byte[] byteArray = Encoding.ASCII.GetBytes(blobContents); // using (MemoryStream ms = new MemoryStream()) using (var stream = file.OpenReadStream()) { await blobClient.UploadAsync(stream, overwrite : true); } return("Blob successfully created"); }
private static async Task <Uri> GetUserDelegationSasBlob(TokenAcquisitionTokenCredential tokenCredential, string blobName) { // BlobServiceClient blobServiceClient = // blobClient.GetParentBlobContainerClient().GetParentBlobServiceClient(); Uri blobUri = new Uri("https://cshuicantonresturant.blob.core.windows.net"); var blobServiceClient = new BlobServiceClient(blobUri, tokenCredential); var containerClient = blobServiceClient.GetBlobContainerClient("testclient"); var blobClient = containerClient.GetBlobClient(blobName); // Get a user delegation key for the Blob service that's valid for 7 days. // You can use the key to generate any number of shared access signatures // over the lifetime of the key. var userDelegationKey = await blobServiceClient.GetUserDelegationKeyAsync(DateTimeOffset.UtcNow, DateTimeOffset.UtcNow.AddDays(7)); // Create a SAS token that's also valid for 7 days. BlobSasBuilder sasBuilder = new BlobSasBuilder() { BlobContainerName = blobClient.BlobContainerName, BlobName = blobClient.Name, Resource = "b", StartsOn = DateTimeOffset.UtcNow, ExpiresOn = DateTimeOffset.UtcNow.AddDays(7) }; // Specify read and write permissions for the SAS. sasBuilder.SetPermissions(BlobSasPermissions.Read | BlobSasPermissions.Write); // Add the SAS token to the blob URI. BlobUriBuilder blobUriBuilder = new BlobUriBuilder(blobClient.Uri) { // Specify the user delegation key. Sas = sasBuilder.ToSasQueryParameters(userDelegationKey, blobServiceClient.AccountName) }; Console.WriteLine("Blob user delegation SAS URI: {0}", blobUriBuilder); Console.WriteLine(); return(blobUriBuilder.ToUri()); }
public FileStreamResult OnGetBlob(string storageAccountName, string containerName, string path) { string accessToken = _tokenAcquisition.GetAccessTokenForUserAsync(new string [] { "https://storage.azure.com/.default" }).Result; string storageAccount = "https://" + storageAccountName + ".blob.core.windows.net/" + containerName + "/" + path; Stream stream; string contentType; Uri blobUri = new Uri(storageAccount); try { TokenCredential token = new TokenAcquisitionTokenCredential(_tokenAcquisition); BlobClient blobClient = new BlobClient(blobUri, token); try { contentType = blobClient.GetProperties().Value.ContentType; stream = blobClient.OpenRead(); } catch (Exception e) { contentType = "application/json"; string exceptionString = e.Message.Replace(Environment.NewLine, " "); string jsonBody = "{\"Error\": \"" + exceptionString + "\"}"; stream = new MemoryStream(Encoding.ASCII.GetBytes(jsonBody)); } } catch (Exception e) { contentType = "application/json"; string exceptionString = e.Message.Replace(Environment.NewLine, " "); string jsonBody = "{\"Error\": \"" + exceptionString + "\"}"; stream = new MemoryStream(Encoding.ASCII.GetBytes(jsonBody)); } return(new FileStreamResult(stream, contentType)); }
public AzureStorageProvider(TokenAcquisitionTokenCredential tokenAcquisitionTokenCredential, IConfiguration configuration) { _tokenAcquisitionTokenCredential = tokenAcquisitionTokenCredential; _configuration = configuration; }
public static async Task <BlobDownloadInfo> GetThumbNail(AzureStorageConfig _storageConfig, TokenAcquisitionTokenCredential tokenCredential, TelemetryClient telemetryClient, string imageName) { Uri blobUri = new Uri(string.Format("https://{0}.blob.core.windows.net/{1}/{2}", _storageConfig.AccountName, _storageConfig.ImageContainer, imageName)); BlobClient blobClient = new BlobClient(blobUri, tokenCredential, null); return(await blobClient.DownloadAsync()); }
public static async Task <List <string> > GetThumbNailUrls(AzureStorageConfig _storageConfig, TokenAcquisitionTokenCredential tokenCredential, TelemetryClient telemetryClient, string pathBase) { List <string> thumbnailUrls = new List <string>(); // Create a URI to the storage account Uri blobUri = new Uri(_storageConfig.FullAccountName); BlobServiceClient blobServiceClient = new BlobServiceClient(blobUri, tokenCredential, null); // Get reference to the container BlobContainerClient container = blobServiceClient.GetBlobContainerClient(_storageConfig.ImageContainer); if (container.Exists()) { foreach (BlobItem blobItem in container.GetBlobs()) { if (IsImage(blobItem.Name)) { string imageUrl = string.Format("{0}api/images/thumbnail?ImageName={1}", pathBase, blobItem.Name); thumbnailUrls.Add(imageUrl); telemetryClient.TrackTrace("Found Thumbnail - " + imageUrl); } } } else { telemetryClient.TrackException(new ArgumentNullException(string.Format("Container {0} not found!", container.Name))); container.CreateIfNotExists(PublicAccessType.None, null, null); } return(await Task.FromResult(thumbnailUrls)); }