From 2978bef380fdf4c1fe997d76de94ca2dbda42ff0 Mon Sep 17 00:00:00 2001 From: Maksim Pischulenok Date: Sun, 8 Jun 2025 23:51:55 +0300 Subject: [PATCH] Add content type to uploaded index.html --- .../pischule/memestv/bot/handler/ThisCommandHandlerService.kt | 2 +- .../com/pischule/memestv/upload/DummyFileUploadService.kt | 2 +- .../kotlin/com/pischule/memestv/upload/FileUploaderService.kt | 2 +- .../kotlin/com/pischule/memestv/upload/IndexInitializer.kt | 2 +- .../com/pischule/memestv/upload/S3FileUploaderService.kt | 3 ++- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/com/pischule/memestv/bot/handler/ThisCommandHandlerService.kt b/src/main/kotlin/com/pischule/memestv/bot/handler/ThisCommandHandlerService.kt index d836440..f44ab4c 100644 --- a/src/main/kotlin/com/pischule/memestv/bot/handler/ThisCommandHandlerService.kt +++ b/src/main/kotlin/com/pischule/memestv/bot/handler/ThisCommandHandlerService.kt @@ -28,7 +28,7 @@ class ThisCommandHandlerService( val fileBytes = env.bot.downloadFileBytes(maxResPhotoId) ?: return logger.info { "Downloaded a file from Telegram" } - fileUploaderService.uploadFile(fileBytes, "_.jpeg") + fileUploaderService.uploadFile(fileBytes, "_.jpeg", "image/jpeg") reactToMessage(env, "👍") } diff --git a/src/main/kotlin/com/pischule/memestv/upload/DummyFileUploadService.kt b/src/main/kotlin/com/pischule/memestv/upload/DummyFileUploadService.kt index 47fd8ba..8c48a15 100644 --- a/src/main/kotlin/com/pischule/memestv/upload/DummyFileUploadService.kt +++ b/src/main/kotlin/com/pischule/memestv/upload/DummyFileUploadService.kt @@ -10,7 +10,7 @@ private val logger = KotlinLogging.logger {} @Service class DummyFileUploadService() : FileUploaderService { - override suspend fun uploadFile(fileBytes: ByteArray, filename: String) { + override suspend fun uploadFile(fileBytes: ByteArray, filename: String, contentType: String) { logger.info { "File $filename has been successfully uploaded to nowhere" } } } diff --git a/src/main/kotlin/com/pischule/memestv/upload/FileUploaderService.kt b/src/main/kotlin/com/pischule/memestv/upload/FileUploaderService.kt index 61cf280..aed920f 100644 --- a/src/main/kotlin/com/pischule/memestv/upload/FileUploaderService.kt +++ b/src/main/kotlin/com/pischule/memestv/upload/FileUploaderService.kt @@ -4,5 +4,5 @@ import org.springframework.stereotype.Service @Service interface FileUploaderService { - suspend fun uploadFile(fileBytes: ByteArray, filename: String) + suspend fun uploadFile(fileBytes: ByteArray, filename: String, contentType: String) } diff --git a/src/main/kotlin/com/pischule/memestv/upload/IndexInitializer.kt b/src/main/kotlin/com/pischule/memestv/upload/IndexInitializer.kt index 49d3adf..930ad63 100644 --- a/src/main/kotlin/com/pischule/memestv/upload/IndexInitializer.kt +++ b/src/main/kotlin/com/pischule/memestv/upload/IndexInitializer.kt @@ -17,7 +17,7 @@ class IndexInitializer(val fileUploaderService: FileUploaderService) { fun applicationStartedHandler(event: ApplicationStartedEvent) { try { val fileBytes = readResourceAsByteArray("static/index.html") - runBlocking { fileUploaderService.uploadFile(fileBytes, "index.html") } + runBlocking { fileUploaderService.uploadFile(fileBytes, "index.html", "text/html") } } catch (e: Error) { logger.warn(e) { "Failed to upload " } } diff --git a/src/main/kotlin/com/pischule/memestv/upload/S3FileUploaderService.kt b/src/main/kotlin/com/pischule/memestv/upload/S3FileUploaderService.kt index 0ec060b..5fea278 100644 --- a/src/main/kotlin/com/pischule/memestv/upload/S3FileUploaderService.kt +++ b/src/main/kotlin/com/pischule/memestv/upload/S3FileUploaderService.kt @@ -13,12 +13,13 @@ private val logger = KotlinLogging.logger {} @Service class S3FileUploaderService(private val s3Client: S3Client, private val s3Props: S3Props) : FileUploaderService { - override suspend fun uploadFile(fileBytes: ByteArray, filename: String) { + override suspend fun uploadFile(fileBytes: ByteArray, filename: String, contentType: String) { s3Client.putObject( PutObjectRequest { body = ByteStream.fromBytes(fileBytes) bucket = s3Props.bucket key = filename + this.contentType = contentType } ) logger.info { "File $filename has been uploaded to S3" }