diff --git a/src/main/kotlin/cn/rtast/fancybot/FancyBot.kt b/src/main/kotlin/cn/rtast/fancybot/FancyBot.kt index 21c346c..70083ec 100644 --- a/src/main/kotlin/cn/rtast/fancybot/FancyBot.kt +++ b/src/main/kotlin/cn/rtast/fancybot/FancyBot.kt @@ -89,7 +89,7 @@ class FancyBot : OneBotListener { } else { try { if (imagesUrl.size == 1) { - val imageByteArray = imagesUrl[0].toURL().readBytes() + val imageByteArray = imagesUrl.first().toURL().readBytes() val imageFileType = imageByteArray.getFileType() val imageBedUrl = ImageBed.upload(imageByteArray, imageFileType) val msg = MessageChain.Builder() diff --git a/src/main/kotlin/cn/rtast/fancybot/util/misc/ImageBed.kt b/src/main/kotlin/cn/rtast/fancybot/util/misc/ImageBed.kt index f22808d..3b95ac5 100644 --- a/src/main/kotlin/cn/rtast/fancybot/util/misc/ImageBed.kt +++ b/src/main/kotlin/cn/rtast/fancybot/util/misc/ImageBed.kt @@ -46,13 +46,15 @@ object ImageBed { fun upload(file: ByteArray, fileType: String = ""): String { val randomUUID = UUID.randomUUID().toString() if (configManager.imageBedType == ImageBedType.CloudflareR2) { - val key = "$randomUUID${if (fileType.isNotBlank()) ".$fileType" else ""}" + val ft = if (fileType.isNotBlank()) ".$fileType" else "" + val key = "$randomUUID${ft}" val putObjectRequest = PutObjectRequest.builder() .bucket(configManager.cloudflareR2BucketName) + .contentType("image/${ft.replace(".", "")}") .key(key) .build() s3Client.putObject(putObjectRequest, RequestBody.fromBytes(file)) - return "${configManager.cloudflareR2PublicUrl}/$key" + return "${configManager.cloudflareR2PublicUrl}/$key".proxy } else { val body = UploadContentPayload("uploadImage", file.encodeToBase64()).toJson() val response = Http.put(