From ec3bbd900ece04d77abf232da0cb90e544cdbc9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B7=E5=86=B7?= Date: Mon, 20 Jul 2020 13:57:53 +0800 Subject: [PATCH] :bug: Fixing a bug. #1534 amazonaws oss Unable to execute HTTP request: Timeout waiting for connection from pool --- .../java/com/pig4cloud/pigx/common/oss/OssProperties.java | 5 +++++ .../pig4cloud/pigx/common/oss/service/OssTemplate.java | 8 +++++--- .../pigx/admin/service/impl/SysFileServiceImpl.java | 6 +++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/pigx-common/pigx-common-oss/src/main/java/com/pig4cloud/pigx/common/oss/OssProperties.java b/pigx-common/pigx-common-oss/src/main/java/com/pig4cloud/pigx/common/oss/OssProperties.java index 6bb899824..4ebacb1c9 100755 --- a/pigx-common/pigx-common-oss/src/main/java/com/pig4cloud/pigx/common/oss/OssProperties.java +++ b/pigx-common/pigx-common-oss/src/main/java/com/pig4cloud/pigx/common/oss/OssProperties.java @@ -77,4 +77,9 @@ public class OssProperties { */ private String bucketName = "payerp"; + /** + * 最大线程数,默认: 100 + */ + private Integer maxConnections = 100; + } diff --git a/pigx-common/pigx-common-oss/src/main/java/com/pig4cloud/pigx/common/oss/service/OssTemplate.java b/pigx-common/pigx-common-oss/src/main/java/com/pig4cloud/pigx/common/oss/service/OssTemplate.java index 7c2158d54..f3fb08030 100755 --- a/pigx-common/pigx-common-oss/src/main/java/com/pig4cloud/pigx/common/oss/service/OssTemplate.java +++ b/pigx-common/pigx-common-oss/src/main/java/com/pig4cloud/pigx/common/oss/service/OssTemplate.java @@ -138,8 +138,8 @@ public class OssTemplate implements InitializingBean { * API Documentation */ @SneakyThrows - public InputStream getObject(String bucketName, String objectName) { - return amazonS3.getObject(bucketName, objectName).getObjectContent(); + public S3Object getObject(String bucketName, String objectName) { + return amazonS3.getObject(bucketName, objectName); } /** @@ -203,8 +203,10 @@ public class OssTemplate implements InitializingBean { } @Override - public void afterPropertiesSet() throws Exception { + public void afterPropertiesSet() { ClientConfiguration clientConfiguration = new ClientConfiguration(); + clientConfiguration.setMaxConnections(ossProperties.getMaxConnections()); + AwsClientBuilder.EndpointConfiguration endpointConfiguration = new AwsClientBuilder.EndpointConfiguration( ossProperties.getEndpoint(), ossProperties.getRegion()); AWSCredentials awsCredentials = new BasicAWSCredentials(ossProperties.getAccessKey(), diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java index f3fa118c9..2b0dd0b6e 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java @@ -20,6 +20,7 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; +import com.amazonaws.services.s3.model.S3Object; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.pig4cloud.pigx.admin.api.entity.SysFile; import com.pig4cloud.pigx.admin.mapper.SysFileMapper; @@ -36,7 +37,6 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; -import java.io.InputStream; import java.util.HashMap; import java.util.Map; @@ -88,9 +88,9 @@ public class SysFileServiceImpl extends ServiceImpl impl */ @Override public void getFile(String bucket, String fileName, HttpServletResponse response) { - try (InputStream inputStream = minioTemplate.getObject(bucket, fileName)) { + try (S3Object s3Object = minioTemplate.getObject(bucket, fileName)) { response.setContentType("application/octet-stream; charset=UTF-8"); - IoUtil.copy(inputStream, response.getOutputStream()); + IoUtil.copy(s3Object.getObjectContent(), response.getOutputStream()); } catch (Exception e) { log.error("文件读取异常: {}", e.getLocalizedMessage());