Merged PR 90: Added content type into main

Added content type
This commit is contained in:
Dominic Villemure
2024-07-01 03:41:37 +00:00
7 changed files with 25 additions and 9 deletions

View File

@@ -2,7 +2,7 @@
public static class CommonFileNames public static class CommonFileNames
{ {
public static string ProfilePicture = "profilePicture"; public static string ProfilePicture = "profilePicture.png";
public static string BannerPicture = "bannerPicture"; public static string BannerPicture = "bannerPicture.png";
public static string WebsiteIcon = "websiteIcon"; public static string WebsiteIcon = "websiteIcon.png";
} }

View File

@@ -0,0 +1,6 @@
namespace Hutopy.Application.AzureBlobStorage.Constants;
public static class ContentTypes
{
public static string ImagePng = "image/png";
}

View File

@@ -2,6 +2,6 @@
public interface IAzureBlobStorageService public interface IAzureBlobStorageService
{ {
Task<string> UploadFileAsync(string containerName, string blobName, Stream fileStream); Task<string> UploadFileAsync(string containerName, string blobName, Stream fileStream, string contentType);
Task<MemoryStream> DownloadFileAsync(string containerName, string blobName); Task<MemoryStream> DownloadFileAsync(string containerName, string blobName);
} }

View File

@@ -17,7 +17,7 @@ public class UploadBannerPictureCommandHandler(IIdentityService identityService,
var blobName = $"{currentUserId}/{SubDirectoryNames.Profile}/{CommonFileNames.BannerPicture}"; var blobName = $"{currentUserId}/{SubDirectoryNames.Profile}/{CommonFileNames.BannerPicture}";
var url = await azureBlobStorageService.UploadFileAsync(ContainerNames.Users, blobName, request.BannerPicture); var url = await azureBlobStorageService.UploadFileAsync(ContainerNames.Users, blobName, request.BannerPicture, ContentTypes.ImagePng);
await identityService.UpdateCurrentUserBannerPictureUrlAsync(url); await identityService.UpdateCurrentUserBannerPictureUrlAsync(url);

View File

@@ -17,7 +17,7 @@ public class UploadProfilePictureCommandHandler(IIdentityService identityService
var blobName = $"{currentUserId}/{SubDirectoryNames.Profile}/{CommonFileNames.ProfilePicture}"; var blobName = $"{currentUserId}/{SubDirectoryNames.Profile}/{CommonFileNames.ProfilePicture}";
var url = await azureBlobStorageService.UploadFileAsync(ContainerNames.Users, blobName, request.ProfilePicture); var url = await azureBlobStorageService.UploadFileAsync(ContainerNames.Users, blobName, request.ProfilePicture, ContentTypes.ImagePng);
await identityService.UpdateCurrentUserProfilePictureUrlAsync(url); await identityService.UpdateCurrentUserProfilePictureUrlAsync(url);

View File

@@ -17,7 +17,7 @@ public class UploadWebsiteIconCommandHandler(IIdentityService identityService, I
var blobName = $"{currentUserId}/{SubDirectoryNames.Profile}/{CommonFileNames.WebsiteIcon}"; var blobName = $"{currentUserId}/{SubDirectoryNames.Profile}/{CommonFileNames.WebsiteIcon}";
var url = await azureBlobStorageService.UploadFileAsync(ContainerNames.Users, blobName, request.WebsiteIcon); var url = await azureBlobStorageService.UploadFileAsync(ContainerNames.Users, blobName, request.WebsiteIcon, ContentTypes.ImagePng);
await identityService.UpdateCurrentUserWebsiteIconUrlAsync(url); await identityService.UpdateCurrentUserWebsiteIconUrlAsync(url);

View File

@@ -25,8 +25,9 @@ public class AzureBlobStorageService : IAzureBlobStorageService
/// <param name="blobName">The blob name (path within the container, include the file name).</param> /// <param name="blobName">The blob name (path within the container, include the file name).</param>
/// <param name="containerName">The name of the container where the file is stored.</param> /// <param name="containerName">The name of the container where the file is stored.</param>
/// <param name="fileStream">The stream.</param> /// <param name="fileStream">The stream.</param>
/// <param name="contentType">The content type.</param>
/// <returns></returns> /// <returns></returns>
public async Task<string> UploadFileAsync(string containerName, string blobName, Stream fileStream) public async Task<string> UploadFileAsync(string containerName, string blobName, Stream fileStream, string contentType)
{ {
// Get a reference to a container // Get a reference to a container
var containerClient = _blobServiceClient.GetBlobContainerClient(containerName); var containerClient = _blobServiceClient.GetBlobContainerClient(containerName);
@@ -36,9 +37,18 @@ public class AzureBlobStorageService : IAzureBlobStorageService
// Get a reference to a blob // Get a reference to a blob
var blobClient = containerClient.GetBlobClient(blobName); var blobClient = containerClient.GetBlobClient(blobName);
// Define the BlobHttpHeaders to include the content type
var blobHttpHeaders = new BlobHttpHeaders
{
ContentType = contentType
};
// Upload the file // Upload the file
await blobClient.UploadAsync(fileStream, true); await blobClient.UploadAsync(fileStream, new BlobUploadOptions
{
HttpHeaders = blobHttpHeaders
});
// Return the URI of the uploaded blob // Return the URI of the uploaded blob
return blobClient.Uri.ToString(); return blobClient.Uri.ToString();