| @@ -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; | |||
| } | |||
| @@ -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 | |||
| 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 | |||
| @@ -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")); | |||
| @@ -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 | |||
| mail: | |||
| host: smtp.exmail.qq.com | |||
| username: ENC(lknBjZsA24AaQEXuy0fFw3acd4v4Xsf3CsgDcRZgjlYnNAL9R07d/w==) | |||
| password: ENC(gIkVPuYMmJ/EDxry8QIfGumIAk4plAwolGrfg1fiM3U=) # 授权密码 | |||
| username: zhengfangyuan@iformall.com | |||
| password: xnydCeUzofB2h8qp # 授权密码 | |||
| properties: | |||
| mail: | |||
| smtp: | |||
| @@ -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; | |||
| @@ -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 | |||
| mail: | |||
| host: smtp.exmail.qq.com | |||
| username: ENC(lknBjZsA24AaQEXuy0fFw3acd4v4Xsf3CsgDcRZgjlYnNAL9R07d/w==) | |||
| password: ENC(gIkVPuYMmJ/EDxry8QIfGumIAk4plAwolGrfg1fiM3U=) # 授权密码 | |||
| username: zhengfangyuan@iformall.com | |||
| password: xnydCeUzofB2h8qp # 授权密码 | |||
| properties: | |||
| mail: | |||
| smtp: | |||
| @@ -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<String, String> param) { | |||
| public Result receivemsg(@RequestParam List<Map<String, String>> param) { | |||
| logger.debug("[" + getIpAddr() + "] WxMsgCallbackController::receivemsgAliyun"); | |||
| logger.info(param.toString()); | |||
| try { | |||
| //解析param数据插入数据库中 | |||
| wxMsgCallbackService.receivemsgAliyun(param); | |||
| if(param != null && param.size() > 0){ | |||
| for (Map<String, String> p:param) { | |||
| //解析param数据插入数据库中 | |||
| wxMsgCallbackService.receivemsgAliyun(p); | |||
| } | |||
| } | |||
| }catch(Exception e){ | |||
| logger.error("aliyun 短信回调ERROR",e); | |||
| return new Result(ErrorCode.SYS_SERVER_ERROR); | |||
| @@ -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 | |||
| mail: | |||
| host: smtp.exmail.qq.com | |||
| username: ENC(lknBjZsA24AaQEXuy0fFw3acd4v4Xsf3CsgDcRZgjlYnNAL9R07d/w==) | |||
| password: ENC(gIkVPuYMmJ/EDxry8QIfGumIAk4plAwolGrfg1fiM3U=) # 授权密码 | |||
| username: zhengfangyuan@iformall.com | |||
| password: xnydCeUzofB2h8qp # 授权密码 | |||
| properties: | |||
| mail: | |||
| smtp: | |||
| @@ -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 | |||
| mail: | |||
| host: smtp.exmail.qq.com | |||
| username: ENC(lknBjZsA24AaQEXuy0fFw3acd4v4Xsf3CsgDcRZgjlYnNAL9R07d/w==) | |||
| password: ENC(gIkVPuYMmJ/EDxry8QIfGumIAk4plAwolGrfg1fiM3U=) # 授权密码 | |||
| username: zhengfangyuan@iformall.com | |||
| password: xnydCeUzofB2h8qp # 授权密码 | |||
| properties: | |||
| mail: | |||
| smtp: | |||
| @@ -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 | |||
| mail: | |||
| host: smtp.exmail.qq.com | |||
| username: ENC(lknBjZsA24AaQEXuy0fFw3acd4v4Xsf3CsgDcRZgjlYnNAL9R07d/w==) | |||
| password: ENC(gIkVPuYMmJ/EDxry8QIfGumIAk4plAwolGrfg1fiM3U=) # 授权密码 | |||
| username: zhengfangyuan@iformall.com | |||
| password: xnydCeUzofB2h8qp # 授权密码 | |||
| properties: | |||
| mail: | |||
| smtp: | |||
| @@ -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 | |||
| mail: | |||
| host: smtp.exmail.qq.com | |||
| username: ENC(lknBjZsA24AaQEXuy0fFw3acd4v4Xsf3CsgDcRZgjlYnNAL9R07d/w==) | |||
| password: ENC(gIkVPuYMmJ/EDxry8QIfGumIAk4plAwolGrfg1fiM3U=) # 授权密码 | |||
| username: zhengfangyuan@iformall.com | |||
| password: xnydCeUzofB2h8qp # 授权密码 | |||
| properties: | |||
| mail: | |||
| smtp: | |||
| @@ -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<String, String> 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; | |||
| } | |||
| } | |||
| @@ -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; | |||
| } | |||
| @@ -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()) { | |||
| @@ -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<S3ObjectSummary> 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<S3ObjectSummary> objects = ol.getObjectSummaries(); | |||
| // for (S3ObjectSummary os: objects) { | |||
| // logger.info(os.toString()); | |||
| // break; | |||
| // } | |||
| // }catch (Exception e){ | |||
| // e.printStackTrace(); | |||
| // } | |||
| // | |||
| // return new ResultData(); | |||
| // } | |||
| } | |||
| @@ -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 | |||
| mail: | |||
| host: smtp.exmail.qq.com | |||
| username: ENC(lknBjZsA24AaQEXuy0fFw3acd4v4Xsf3CsgDcRZgjlYnNAL9R07d/w==) | |||
| password: ENC(gIkVPuYMmJ/EDxry8QIfGumIAk4plAwolGrfg1fiM3U=) # 授权密码 | |||
| username: zhengfangyuan@iformall.com | |||
| password: xnydCeUzofB2h8qp # 授权密码 | |||
| properties: | |||
| mail: | |||
| smtp: | |||
| @@ -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 | |||
| mail: | |||
| host: smtp.exmail.qq.com | |||
| username: ENC(lknBjZsA24AaQEXuy0fFw3acd4v4Xsf3CsgDcRZgjlYnNAL9R07d/w==) | |||
| password: ENC(gIkVPuYMmJ/EDxry8QIfGumIAk4plAwolGrfg1fiM3U=) # 授权密码 | |||
| username: zhengfangyuan@iformall.com | |||
| password: xnydCeUzofB2h8qp # 授权密码 | |||
| properties: | |||
| mail: | |||
| smtp: | |||
| @@ -387,6 +387,21 @@ | |||
| <version>2.1.0</version> | |||
| </dependency> | |||
| <!-- https://mvnrepository.com/artifact/com.aliyun.oss/aliyun-sdk-oss --> | |||
| <dependency> | |||
| <groupId>com.aliyun.oss</groupId> | |||
| <artifactId>aliyun-sdk-oss</artifactId> | |||
| <version>3.10.2</version> | |||
| </dependency> | |||
| <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload --> | |||
| <dependency> | |||
| <groupId>commons-fileupload</groupId> | |||
| <artifactId>commons-fileupload</artifactId> | |||
| <version>1.4</version> | |||
| </dependency> | |||
| </dependencies> | |||