From ee294a891173940277ccf29d4b85c34bb83051ed Mon Sep 17 00:00:00 2001 From: xhxu Date: Mon, 6 Jul 2020 21:12:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/sys/UploadController.java | 38 ++++--- .../src/main/resources/application-dev.yml | 11 ++- .../iformall/controller/UploadController.java | 22 +++-- .../src/main/resources/application-dev.yml | 12 ++- .../iformall/controller/UploadController.java | 51 +++++++--- .../src/main/resources/application-dev.yml | 12 ++- .../callback/WxMsgCallbackController.java | 12 ++- .../src/main/resources/application-dev.yml | 12 ++- .../src/main/resources/application-dev.yml | 12 ++- .../src/main/resources/application-dev.yml | 12 ++- .../src/main/resources/application-dev.yml | 12 ++- .../com/iformall/file/aliyun/AliyunOSS.java | 99 +++++++++++++++++++ .../file/aliyun/bean/AliyunOSSConfig.java | 22 +++++ .../java/com/iformall/sms/EnumSMSChannel.java | 2 +- .../controller/sys/UploadController.java | 80 +++++++++------ .../src/main/resources/application-dev.yml | 12 ++- .../src/main/resources/application-dev.yml | 12 ++- pom.xml | 15 +++ 18 files changed, 364 insertions(+), 84 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/file/aliyun/AliyunOSS.java create mode 100644 mallinkService/src/main/java/com/iformall/file/aliyun/bean/AliyunOSSConfig.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java b/mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java index d8f51bb62..dfb6172bc 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java @@ -6,6 +6,7 @@ import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.file.aliyun.AliyunOSS; import com.iformall.service.QrCodeService; import com.iformall.utils.ImgUtil; import io.swagger.annotations.Api; @@ -33,6 +34,8 @@ public class UploadController extends BaseController { @Autowired private String fmUploadDir; + @Autowired + private AliyunOSS aliyunOSS; @Autowired private QrCodeService qrCodeService; @@ -67,15 +70,16 @@ public class UploadController extends BaseController { String fileName = UUID.randomUUID().toString(); int dot = multiReq.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; if (dot >= 0) { - String fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); + fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); fileName = getFileName(tenantEntity, fileName + fileFormat); } else { fileName = getFileName(tenantEntity, fileName); } - System.out.println(fileName); - ResultData data = qrCodeService.awsUpload(multiReq.getInputStream(), metadata, fileName, tenantEntity); +// ResultData data = qrCodeService.awsUpload(multiReq.getInputStream(), metadata, fileName, tenantEntity); + ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); return data; } @@ -137,15 +141,17 @@ public class UploadController extends BaseController { ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentType(multiReq.getContentType()); metadata.setContentLength(newFile.length()); - ResultData data = qrCodeService.awsUpload(new FileInputStream(newFile), metadata, fileName, tenantEntity); - // 删除本地缓存 +// ResultData data = qrCodeService.awsUpload(new FileInputStream(newFile), metadata, fileName, tenantEntity); + ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, new FileInputStream(newFile)); + // 删除本地缓存 newFile.delete(); return data; } else { ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentType(multiReq.getContentType()); metadata.setContentLength(size); - ResultData data = qrCodeService.awsUpload(multiReq.getInputStream(), metadata, fileName, tenantEntity); +// ResultData data = qrCodeService.awsUpload(multiReq.getInputStream(), metadata, fileName, tenantEntity); + ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); return data; } } catch (Exception e) { @@ -185,14 +191,17 @@ public class UploadController extends BaseController { String fileName = UUID.randomUUID().toString(); int dot = multipartFile.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; if (dot >= 0) { - String fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());; + fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());; fileName = getFileName(tenantEntity, fileName + fileFormat); } else { fileName = getFileName(tenantEntity, fileName); } - ResultData data1 = qrCodeService.awsUpload(multipartFile.getInputStream(), metadata, fileName, getTenantInfo()); +// ResultData data1 = qrCodeService.awsUpload(multipartFile.getInputStream(), metadata, fileName, getTenantInfo()); + ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream()); + if(data1.code == ResultData.SUCCESS) { Map _data = (Map)data1.data; map.put("url", (String) _data.get("url")); @@ -229,10 +238,17 @@ public class UploadController extends BaseController { metadata.setContentLength(multiReq.getSize()); String fileName = multiReq.getOriginalFilename(); + + int dot = multiReq.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; + if (dot >= 0) { + fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); + } fileName = "cimg/" + fileName; - ResultData data = qrCodeService.awsUpload(multiReq.getInputStream(), metadata, fileName, new TenantEntity() {{ - setTenantId("cimg"); - }}); +// ResultData data = qrCodeService.awsUpload(multiReq.getInputStream(), metadata, fileName, new TenantEntity() {{ +// setTenantId("cimg"); +// }}); + ResultData data = aliyunOSS.uploadFile("cimg", fileFormat, multiReq.getInputStream()); return data; } diff --git a/mallinkAdmin/src/main/resources/application-dev.yml b/mallinkAdmin/src/main/resources/application-dev.yml index c6efcbfa4..c8195e0ad 100644 --- a/mallinkAdmin/src/main/resources/application-dev.yml +++ b/mallinkAdmin/src/main/resources/application-dev.yml @@ -42,7 +42,7 @@ spring: max-wait: -1 min-idle: 10 - # SMS + aliyun: sms: accessKeyId: LTAI4G7ixY4AhvM35F8o3W3V @@ -53,6 +53,14 @@ spring: dateFormat: yyyyMMdd endpointName: cn-hangzhou + oss: + endpoint: oss-cn-beijing.aliyuncs.com + keyid: LTAI4G7ixY4AhvM35F8o3W3V + keysecret: VfWqGb83qIQrS9us45utskl8itd7ry + bucketname: formall + filehost: malinkadmin + filedomain: http://formall.oss-accelerate.aliyuncs.com + # EMAIL mail: host: smtp.exmail.qq.com @@ -67,6 +75,7 @@ spring: socketFactory: port: 465 class: javax.net.ssl.SSLSocketFactory + # ROCKETMQ rocketmq: nameServer: 127.0.0.1:9876 diff --git a/mallinkBApi/src/main/java/com/iformall/controller/UploadController.java b/mallinkBApi/src/main/java/com/iformall/controller/UploadController.java index a40a9010e..a2c29c53e 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/UploadController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/UploadController.java @@ -15,6 +15,7 @@ import com.iformall.common.ResultData; import com.iformall.config.AwsProperty; import com.iformall.domain.po.MallResource; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.file.aliyun.AliyunOSS; import com.iformall.service.MallResourceService; import com.iformall.utils.ImgUtil; import io.swagger.annotations.Api; @@ -50,6 +51,9 @@ public class UploadController extends BaseController { @Autowired private String fmUploadDir; + @Autowired + private AliyunOSS aliyunOSS; + private AmazonS3 s3 = null; private String getFileName(TenantEntity tenantEntity, String fileName) { @@ -149,14 +153,16 @@ public class UploadController extends BaseController { String fileName = UUID.randomUUID().toString(); int dot = multiReq.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; if (dot >= 0) { - String fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); + fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); fileName = getFileName(tenantEntity, fileName + fileFormat); } else { fileName = getFileName(tenantEntity, fileName); } - ResultData data = awsUpload(multiReq.getInputStream(), metadata, fileName, tenantEntity); +// ResultData data = awsUpload(multiReq.getInputStream(), metadata, fileName, tenantEntity); + ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); return data; } @@ -212,7 +218,8 @@ public class UploadController extends BaseController { ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentType(multiReq.getContentType()); metadata.setContentLength(newFile.length()); - ResultData data = awsUpload(new FileInputStream(newFile), metadata, fileName, tenantEntity); +// ResultData data = awsUpload(new FileInputStream(newFile), metadata, fileName, tenantEntity); + ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, new FileInputStream(newFile)); // 删除本地缓存 newFile.delete(); return data; @@ -220,7 +227,8 @@ public class UploadController extends BaseController { ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentType(multiReq.getContentType()); metadata.setContentLength(multiReq.getSize()); - ResultData data = awsUpload(multiReq.getInputStream(), metadata, fileName, tenantEntity); +// ResultData data = awsUpload(multiReq.getInputStream(), metadata, fileName, tenantEntity); + ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); return data; } } @@ -256,14 +264,16 @@ public class UploadController extends BaseController { String fileName = UUID.randomUUID().toString(); int dot = multipartFile.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; if (dot >= 0) { - String fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length()); + fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length()); getFileName(tenantEntity, fileName + fileFormat); } else { getFileName(tenantEntity, fileName); } - ResultData data1 = awsUpload(multipartFile.getInputStream(), metadata, fileName, tenantEntity); +// ResultData data1 = awsUpload(multipartFile.getInputStream(), metadata, fileName, tenantEntity); + ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream()); if (data1.code == ResultData.SUCCESS) { Map _data = (Map) data1.data; map.put("url", (String) _data.get("url")); diff --git a/mallinkBApi/src/main/resources/application-dev.yml b/mallinkBApi/src/main/resources/application-dev.yml index 8ab1e74c4..e34037bc7 100644 --- a/mallinkBApi/src/main/resources/application-dev.yml +++ b/mallinkBApi/src/main/resources/application-dev.yml @@ -52,11 +52,19 @@ spring: dateFormat: yyyyMMdd endpointName: cn-hangzhou + oss: + endpoint: oss-cn-beijing.aliyuncs.com + keyid: LTAI4G7ixY4AhvM35F8o3W3V + keysecret: VfWqGb83qIQrS9us45utskl8itd7ry + bucketname: formall + filehost: malinkbapi + filedomain: http://formall.oss-accelerate.aliyuncs.com + # EMAIL mail: host: smtp.exmail.qq.com - username: ENC(lknBjZsA24AaQEXuy0fFw3acd4v4Xsf3CsgDcRZgjlYnNAL9R07d/w==) - password: ENC(gIkVPuYMmJ/EDxry8QIfGumIAk4plAwolGrfg1fiM3U=) # 授权密码 + username: zhengfangyuan@iformall.com + password: xnydCeUzofB2h8qp # 授权密码 properties: mail: smtp: diff --git a/mallinkCApi/src/main/java/com/iformall/controller/UploadController.java b/mallinkCApi/src/main/java/com/iformall/controller/UploadController.java index 9e281050f..7241d91d8 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/UploadController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/UploadController.java @@ -11,9 +11,11 @@ import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.CannedAccessControlList; import com.amazonaws.services.s3.model.ObjectMetadata; import com.amazonaws.services.s3.model.PutObjectRequest; +import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.config.AwsProperty; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.file.aliyun.AliyunOSS; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; @@ -42,6 +44,9 @@ public class UploadController extends BaseController { @Autowired private AwsProperty awsProperty; + @Autowired + private AliyunOSS aliyunOSS; + private AmazonS3 s3 = null; private ResultData awsUpload(MultipartFile multiReq, ObjectMetadata metadata, String fileName) { @@ -134,15 +139,24 @@ public class UploadController extends BaseController { String fileName = UUID.randomUUID().toString(); int dot = multiReq.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; if (dot >= 0) { - String fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); + fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); fileName = getFileName(tenantEntity, fileName + fileFormat); } else { fileName = getFileName(tenantEntity, fileName); } - ResultData data = awsUpload(multiReq, metadata, fileName); - return data; +// ResultData data = awsUpload(multiReq, metadata, fileName); + try { + ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); + return data; + } catch (IOException e) { + //e.printStackTrace(); + logger.error(e.getMessage()); + return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); + } + } /** @@ -176,24 +190,33 @@ public class UploadController extends BaseController { String fileName = UUID.randomUUID().toString(); int dot = multipartFile.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; if (dot >= 0) { - String fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length()); + fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length()); fileName = getFileName(tenantEntity, fileName + fileFormat); } else { fileName = getFileName(tenantEntity, fileName); } - ResultData data1 = awsUpload(multipartFile, metadata, fileName); - if (data1.code == ResultData.SUCCESS) { - Map _data = (Map) data1.data; - map.put("url", (String) _data.get("url")); - dataList.add(map); - } else { - // 部分成功 - data.code = ResultData.SUCCESS; - data.data = dataList; - return data; +// ResultData data1 = awsUpload(multipartFile, metadata, fileName); + try { + ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream()); + if (data1.code == ResultData.SUCCESS) { + Map _data = (Map) data1.data; + map.put("url", (String) _data.get("url")); + dataList.add(map); + } else { + // 部分成功 + data.code = ResultData.SUCCESS; + data.data = dataList; + return data; + } + } catch (IOException e) { + //e.printStackTrace(); + logger.error(e.getMessage()); + return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); } + } data.code = ResultData.SUCCESS; data.data = dataList; diff --git a/mallinkCApi/src/main/resources/application-dev.yml b/mallinkCApi/src/main/resources/application-dev.yml index 0ba11afb7..7307d0404 100644 --- a/mallinkCApi/src/main/resources/application-dev.yml +++ b/mallinkCApi/src/main/resources/application-dev.yml @@ -52,11 +52,19 @@ spring: dateFormat: yyyyMMdd endpointName: cn-hangzhou + oss: + endpoint: oss-cn-beijing.aliyuncs.com + keyid: LTAI4G7ixY4AhvM35F8o3W3V + keysecret: VfWqGb83qIQrS9us45utskl8itd7ry + bucketname: formall + filehost: malinkcapi + filedomain: http://formall.oss-accelerate.aliyuncs.com + # EMAIL mail: host: smtp.exmail.qq.com - username: ENC(lknBjZsA24AaQEXuy0fFw3acd4v4Xsf3CsgDcRZgjlYnNAL9R07d/w==) - password: ENC(gIkVPuYMmJ/EDxry8QIfGumIAk4plAwolGrfg1fiM3U=) # 授权密码 + username: zhengfangyuan@iformall.com + password: xnydCeUzofB2h8qp # 授权密码 properties: mail: smtp: diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxMsgCallbackController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxMsgCallbackController.java index 2bf7175d3..e765afc18 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxMsgCallbackController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxMsgCallbackController.java @@ -9,6 +9,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; import java.util.Map; @RestController @@ -66,12 +67,17 @@ public class WxMsgCallbackController extends BaseController { } @PostMapping(value = "/receivemsgAliyun") - public Result receivemsg(@RequestParam Map param) { + public Result receivemsg(@RequestParam List> param) { logger.debug("[" + getIpAddr() + "] WxMsgCallbackController::receivemsgAliyun"); logger.info(param.toString()); try { - //解析param数据插入数据库中 - wxMsgCallbackService.receivemsgAliyun(param); + if(param != null && param.size() > 0){ + for (Map p:param) { + //解析param数据插入数据库中 + wxMsgCallbackService.receivemsgAliyun(p); + } + } + }catch(Exception e){ logger.error("aliyun 短信回调ERROR",e); return new Result(ErrorCode.SYS_SERVER_ERROR); diff --git a/mallinkCallback/src/main/resources/application-dev.yml b/mallinkCallback/src/main/resources/application-dev.yml index 5169e76f3..1bfa02852 100644 --- a/mallinkCallback/src/main/resources/application-dev.yml +++ b/mallinkCallback/src/main/resources/application-dev.yml @@ -53,11 +53,19 @@ spring: dateFormat: yyyyMMdd endpointName: cn-hangzhou + oss: + endpoint: oss-cn-beijing.aliyuncs.com + keyid: LTAI4G7ixY4AhvM35F8o3W3V + keysecret: VfWqGb83qIQrS9us45utskl8itd7ry + bucketname: formall + filehost: malinkcallback + filedomain: http://formall.oss-accelerate.aliyuncs.com + # EMAIL mail: host: smtp.exmail.qq.com - username: ENC(lknBjZsA24AaQEXuy0fFw3acd4v4Xsf3CsgDcRZgjlYnNAL9R07d/w==) - password: ENC(gIkVPuYMmJ/EDxry8QIfGumIAk4plAwolGrfg1fiM3U=) # 授权密码 + username: zhengfangyuan@iformall.com + password: xnydCeUzofB2h8qp # 授权密码 properties: mail: smtp: diff --git a/mallinkMQConsumer/src/main/resources/application-dev.yml b/mallinkMQConsumer/src/main/resources/application-dev.yml index bbe0398a4..46adaa728 100644 --- a/mallinkMQConsumer/src/main/resources/application-dev.yml +++ b/mallinkMQConsumer/src/main/resources/application-dev.yml @@ -54,11 +54,19 @@ spring: dateFormat: yyyyMMdd endpointName: cn-hangzhou + oss: + endpoint: oss-cn-beijing.aliyuncs.com + keyid: LTAI4G7ixY4AhvM35F8o3W3V + keysecret: VfWqGb83qIQrS9us45utskl8itd7ry + bucketname: formall + filehost: malinkmqconsumer + filedomain: http://formall.oss-accelerate.aliyuncs.com + # EMAIL mail: host: smtp.exmail.qq.com - username: ENC(lknBjZsA24AaQEXuy0fFw3acd4v4Xsf3CsgDcRZgjlYnNAL9R07d/w==) - password: ENC(gIkVPuYMmJ/EDxry8QIfGumIAk4plAwolGrfg1fiM3U=) # 授权密码 + username: zhengfangyuan@iformall.com + password: xnydCeUzofB2h8qp # 授权密码 properties: mail: smtp: diff --git a/mallinkPosApi/src/main/resources/application-dev.yml b/mallinkPosApi/src/main/resources/application-dev.yml index 7d4580851..119bbf5f1 100644 --- a/mallinkPosApi/src/main/resources/application-dev.yml +++ b/mallinkPosApi/src/main/resources/application-dev.yml @@ -52,11 +52,19 @@ spring: dateFormat: yyyyMMdd endpointName: cn-hangzhou + oss: + endpoint: oss-cn-beijing.aliyuncs.com + keyid: LTAI4G7ixY4AhvM35F8o3W3V + keysecret: VfWqGb83qIQrS9us45utskl8itd7ry + bucketname: formall + filehost: malinkposapi + filedomain: http://formall.oss-accelerate.aliyuncs.com + # EMAIL mail: host: smtp.exmail.qq.com - username: ENC(lknBjZsA24AaQEXuy0fFw3acd4v4Xsf3CsgDcRZgjlYnNAL9R07d/w==) - password: ENC(gIkVPuYMmJ/EDxry8QIfGumIAk4plAwolGrfg1fiM3U=) # 授权密码 + username: zhengfangyuan@iformall.com + password: xnydCeUzofB2h8qp # 授权密码 properties: mail: smtp: diff --git a/mallinkSchedule/src/main/resources/application-dev.yml b/mallinkSchedule/src/main/resources/application-dev.yml index 304820ce4..9692540ff 100644 --- a/mallinkSchedule/src/main/resources/application-dev.yml +++ b/mallinkSchedule/src/main/resources/application-dev.yml @@ -54,11 +54,19 @@ spring: dateFormat: yyyyMMdd endpointName: cn-hangzhou + oss: + endpoint: oss-cn-beijing.aliyuncs.com + keyid: LTAI4G7ixY4AhvM35F8o3W3V + keysecret: VfWqGb83qIQrS9us45utskl8itd7ry + bucketname: formall + filehost: malinkschedule + filedomain: http://formall.oss-accelerate.aliyuncs.com + # EMAIL mail: host: smtp.exmail.qq.com - username: ENC(lknBjZsA24AaQEXuy0fFw3acd4v4Xsf3CsgDcRZgjlYnNAL9R07d/w==) - password: ENC(gIkVPuYMmJ/EDxry8QIfGumIAk4plAwolGrfg1fiM3U=) # 授权密码 + username: zhengfangyuan@iformall.com + password: xnydCeUzofB2h8qp # 授权密码 properties: mail: smtp: diff --git a/mallinkService/src/main/java/com/iformall/file/aliyun/AliyunOSS.java b/mallinkService/src/main/java/com/iformall/file/aliyun/AliyunOSS.java new file mode 100644 index 000000000..29317ca75 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/file/aliyun/AliyunOSS.java @@ -0,0 +1,99 @@ +package com.iformall.file.aliyun; + +import com.aliyun.oss.*; +import com.aliyun.oss.model.CannedAccessControlList; +import com.aliyun.oss.model.CreateBucketRequest; +import com.aliyun.oss.model.PutObjectRequest; +import com.aliyun.oss.model.PutObjectResult; +import com.iformall.common.ResultData; +import com.iformall.file.aliyun.bean.AliyunOSSConfig; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; + +import java.io.File; +import java.io.InputStream; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +@Component +@Slf4j +public class AliyunOSS { + + @Autowired + private AliyunOSSConfig aliyunOSSConfig; + + public ResultData uploadFile(String folder, String suffix,InputStream inputStream){ + String upload = upload(folder,suffix, inputStream); + ResultData data; + if(StringUtils.isNotBlank(upload)){ + data = new ResultData(); + Map map = new HashMap<>(); + map.put("url", upload); + data.data = map; + }else{ + data = new ResultData(ResultData.ERROR,"上传失败"); + } + return data; + } + + /** + * 上传 + * @param inputStream + * @return + */ + public String upload(String folder, String suffix,InputStream inputStream){ + log.info("=========>OSS文件上传开始:"); + String endpoint= aliyunOSSConfig.getEndpoint(); + String accessKeyId= aliyunOSSConfig.getKeyid(); + String accessKeySecret=aliyunOSSConfig.getKeysecret(); + String bucketName=aliyunOSSConfig.getBucketname(); + String fileHost=aliyunOSSConfig.getFilehost(); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + String dateStr = format.format(new Date()); + + if(null == inputStream){ + return null; + } + OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId,accessKeySecret); + try { + //容器不存在,就创建 + if(! ossClient.doesBucketExist(bucketName)){ + ossClient.createBucket(bucketName); + CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName); + createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead); + ossClient.createBucket(createBucketRequest); + } + if(StringUtils.isNotBlank(folder)){ + folder = folder + "/"; + }else{ + folder = ""; + } + //创建文件路径 + String fileUrl = folder + fileHost + "/" + dateStr + "/" + + UUID.randomUUID().toString().replace("-","") + suffix; + //上传文件 + PutObjectResult result = ossClient.putObject(new PutObjectRequest(bucketName, fileUrl, inputStream)); + //设置权限 这里是公开读 + ossClient.setBucketAcl(bucketName,CannedAccessControlList.PublicRead); + if(null != result){ + log.info("==========>OSS文件上传成功,OSS地址:"+fileUrl); + return aliyunOSSConfig.getFiledomain() + "/" + fileUrl; + } + }catch (OSSException oe){ + log.error(oe.getMessage()); + }catch (ClientException ce){ + log.error(ce.getMessage()); + }finally { + //关闭 + ossClient.shutdown(); + } + return null; + } + +} diff --git a/mallinkService/src/main/java/com/iformall/file/aliyun/bean/AliyunOSSConfig.java b/mallinkService/src/main/java/com/iformall/file/aliyun/bean/AliyunOSSConfig.java new file mode 100644 index 000000000..8f95f98db --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/file/aliyun/bean/AliyunOSSConfig.java @@ -0,0 +1,22 @@ +package com.iformall.file.aliyun.bean; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +/** + * aliyun 配置 + */ +@Component +@Data +@ConfigurationProperties(prefix = "spring.aliyun.oss") +public class AliyunOSSConfig { + + private String endpoint; + private String keyid; + private String keysecret; + private String bucketname; + private String filehost; + private String filedomain; + +} \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/sms/EnumSMSChannel.java b/mallinkService/src/main/java/com/iformall/sms/EnumSMSChannel.java index e5df697d5..d5087279e 100644 --- a/mallinkService/src/main/java/com/iformall/sms/EnumSMSChannel.java +++ b/mallinkService/src/main/java/com/iformall/sms/EnumSMSChannel.java @@ -7,7 +7,7 @@ package com.iformall.sms; public enum EnumSMSChannel { ALIYUN(11, "ALIYUN"), - WIWIDE(1,"WIWIDE"); + WIWIDE(0,"WIWIDE"); public static EnumSMSChannel getEnum(Integer code) { for (EnumSMSChannel value : values()) { diff --git a/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/UploadController.java b/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/UploadController.java index 03fbd3b26..c878d468f 100644 --- a/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/UploadController.java +++ b/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/UploadController.java @@ -14,6 +14,7 @@ import com.iformall.config.AwsProperty; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.MallResource; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.file.aliyun.AliyunOSS; import com.iformall.service.MallResourceService; import com.iformall.utils.ImgUtil; import io.swagger.annotations.Api; @@ -43,6 +44,9 @@ public class UploadController extends BaseController { @Autowired private String fmUploadDir; + @Autowired + private AliyunOSS aliyunOSS; + @Autowired private MallResourceService mallResourceService; @@ -145,14 +149,16 @@ public class UploadController extends BaseController { String fileName = UUID.randomUUID().toString(); int dot = multiReq.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; if (dot >= 0) { - String fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); + fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); fileName = getFileName(tenantEntity, fileName + fileFormat); } else { fileName = getFileName(tenantEntity, fileName); } - ResultData data = awsUpload(multiReq.getInputStream(), metadata, fileName, tenantEntity); +// ResultData data = awsUpload(multiReq.getInputStream(), metadata, fileName, tenantEntity); + ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); return data; } @@ -207,7 +213,8 @@ public class UploadController extends BaseController { ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentType(multiReq.getContentType()); metadata.setContentLength(newFile.length()); - ResultData data = awsUpload(new FileInputStream(newFile), metadata, fileName, tenantEntity); +// ResultData data = awsUpload(new FileInputStream(newFile), metadata, fileName, tenantEntity); + ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, new FileInputStream(newFile)); // 删除本地缓存 newFile.delete(); return data; @@ -215,7 +222,8 @@ public class UploadController extends BaseController { ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentType(multiReq.getContentType()); metadata.setContentLength(multiReq.getSize()); - ResultData data = awsUpload(multiReq.getInputStream(), metadata, fileName, tenantEntity); +// ResultData data = awsUpload(multiReq.getInputStream(), metadata, fileName, tenantEntity); + ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); return data; } } @@ -251,14 +259,16 @@ public class UploadController extends BaseController { String fileName = UUID.randomUUID().toString(); int dot = multipartFile.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; if (dot >= 0) { - String fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length()); + fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length()); fileName = getFileName(tenantEntity, fileName + fileFormat); } else { fileName = getFileName(tenantEntity, fileName); } - ResultData data1 = awsUpload(multipartFile.getInputStream(), metadata, fileName, tenantEntity); +// ResultData data1 = awsUpload(multipartFile.getInputStream(), metadata, fileName, tenantEntity); + ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream()); if(data1.code == ResultData.SUCCESS) { Map _data = (Map)data1.data; map.put("url", (String) _data.get("url")); @@ -296,34 +306,40 @@ public class UploadController extends BaseController { String fileName = multiReq.getOriginalFilename(); fileName = "cimg/" + fileName; - ResultData data = awsUpload(multiReq.getInputStream(), metadata, fileName, new TenantEntity() {{ - setTenantId("cimg"); - }}); + int dot = multiReq.getOriginalFilename().lastIndexOf('.'); + String fileFormat = ""; + if (dot >= 0) { + fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); + } +// ResultData data = awsUpload(multiReq.getInputStream(), metadata, fileName, new TenantEntity() {{ +// setTenantId("cimg"); +// }}); + ResultData data = aliyunOSS.uploadFile("cimg", fileFormat, multiReq.getInputStream()); return data; } - /** - * AWS - * @return - * @throws Exception - */ - @GetMapping(value = "/lists") - @ApiOperation("aws列举文件") - public ResultData awsList() throws Exception { - logger.info("[" + getIpAddr() + "] UploadController::cimgUpload"); - - try{ - ObjectListing ol = s3.listObjects(awsProperty.getBucketName()); - List objects = ol.getObjectSummaries(); - for (S3ObjectSummary os: objects) { - logger.info(os.toString()); - break; - } - }catch (Exception e){ - e.printStackTrace(); - } - - return new ResultData(); - } +// /** +// * AWS +// * @return +// * @throws Exception +// */ +// @GetMapping(value = "/lists") +// @ApiOperation("aws列举文件") +// public ResultData awsList() throws Exception { +// logger.info("[" + getIpAddr() + "] UploadController::cimgUpload"); +// +// try{ +// ObjectListing ol = s3.listObjects(awsProperty.getBucketName()); +// List objects = ol.getObjectSummaries(); +// for (S3ObjectSummary os: objects) { +// logger.info(os.toString()); +// break; +// } +// }catch (Exception e){ +// e.printStackTrace(); +// } +// +// return new ResultData(); +// } } diff --git a/mallinkSysAdmin/src/main/resources/application-dev.yml b/mallinkSysAdmin/src/main/resources/application-dev.yml index cac1eab42..3ac633170 100644 --- a/mallinkSysAdmin/src/main/resources/application-dev.yml +++ b/mallinkSysAdmin/src/main/resources/application-dev.yml @@ -52,11 +52,19 @@ spring: dateFormat: yyyyMMdd endpointName: cn-hangzhou + oss: + endpoint: oss-cn-beijing.aliyuncs.com + keyid: LTAI4G7ixY4AhvM35F8o3W3V + keysecret: VfWqGb83qIQrS9us45utskl8itd7ry + bucketname: formall + filehost: malinksysadmin + filedomain: http://formall.oss-accelerate.aliyuncs.com + # EMAIL mail: host: smtp.exmail.qq.com - username: ENC(lknBjZsA24AaQEXuy0fFw3acd4v4Xsf3CsgDcRZgjlYnNAL9R07d/w==) - password: ENC(gIkVPuYMmJ/EDxry8QIfGumIAk4plAwolGrfg1fiM3U=) # 授权密码 + username: zhengfangyuan@iformall.com + password: xnydCeUzofB2h8qp # 授权密码 properties: mail: smtp: diff --git a/mallinkWebSocketServer/src/main/resources/application-dev.yml b/mallinkWebSocketServer/src/main/resources/application-dev.yml index a304cdeef..0e2f81464 100644 --- a/mallinkWebSocketServer/src/main/resources/application-dev.yml +++ b/mallinkWebSocketServer/src/main/resources/application-dev.yml @@ -54,11 +54,19 @@ spring: dateFormat: yyyyMMdd endpointName: cn-hangzhou + oss: + endpoint: oss-cn-beijing.aliyuncs.com + keyid: LTAI4G7ixY4AhvM35F8o3W3V + keysecret: VfWqGb83qIQrS9us45utskl8itd7ry + bucketname: formall + filehost: malinkwebsocketserver + filedomain: http://formall.oss-accelerate.aliyuncs.com + # EMAIL mail: host: smtp.exmail.qq.com - username: ENC(lknBjZsA24AaQEXuy0fFw3acd4v4Xsf3CsgDcRZgjlYnNAL9R07d/w==) - password: ENC(gIkVPuYMmJ/EDxry8QIfGumIAk4plAwolGrfg1fiM3U=) # 授权密码 + username: zhengfangyuan@iformall.com + password: xnydCeUzofB2h8qp # 授权密码 properties: mail: smtp: diff --git a/pom.xml b/pom.xml index 62e78ae79..a45fdc757 100644 --- a/pom.xml +++ b/pom.xml @@ -387,6 +387,21 @@ 2.1.0 + + + com.aliyun.oss + aliyun-sdk-oss + 3.10.2 + + + + commons-fileupload + commons-fileupload + 1.4 + + + +