From a4e3ca3ca79902457de3c82ba94b1626c6f3c24f Mon Sep 17 00:00:00 2001 From: wangya <757914144@qq.com> Date: Fri, 26 Jul 2019 19:54:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=85=BE=E8=AE=AF=E4=BA=91?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E5=8F=AF=E8=83=BD=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E7=9A=84oom=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../run/halo/app/handler/file/TencentYunFileHandler.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/run/halo/app/handler/file/TencentYunFileHandler.java b/src/main/java/run/halo/app/handler/file/TencentYunFileHandler.java index 87b532c9b..9a27ff7ba 100644 --- a/src/main/java/run/halo/app/handler/file/TencentYunFileHandler.java +++ b/src/main/java/run/halo/app/handler/file/TencentYunFileHandler.java @@ -54,6 +54,11 @@ public class TencentYunFileHandler implements FileHandler { String ossStyleRule = optionService.getByPropertyOfNonNull(TencentYunProperties.OSS_STYLE_RULE).toString(); String ossSource = StringUtils.join("https://", ossBucketName, ".cos." + ossRegion+".myqcloud.com"); + //get file attribute + long size = file.getSize(); + String contentType = file.getContentType(); + + COSCredentials cred = new BasicCOSCredentials(ossAccessKey, ossAccessSecret); Region region = new Region(ossRegion); @@ -74,6 +79,10 @@ public class TencentYunFileHandler implements FileHandler { // Upload ObjectMetadata objectMetadata = new ObjectMetadata(); + //提前告知输入流的长度, 否则可能导致 oom + objectMetadata.setContentLength(size); + // 设置 Content type, 默认是 application/octet-stream + objectMetadata.setContentType(contentType); PutObjectResult putObjectResponseFromInputStream = cosClient.putObject(ossBucketName, upFilePath, file.getInputStream(),objectMetadata); if (putObjectResponseFromInputStream == null) { throw new FileOperationException("上传附件 " + file.getOriginalFilename() + " 到腾讯云失败 ");