|
@@ -0,0 +1,95 @@
|
|
|
|
+package com.mooctest.crowd.site.service.impl;
|
|
|
|
+
|
|
|
|
+import com.aliyun.oss.OSS;
|
|
|
|
+import com.aliyun.oss.model.PutObjectResult;
|
|
|
|
+import com.mooctest.crowd.domain.exception.BaseException;
|
|
|
|
+import com.mooctest.crowd.site.configuration.OSSConfiguration;
|
|
|
|
+import com.mooctest.crowd.site.constants.UploadType;
|
|
|
|
+import com.mooctest.crowd.site.service.UploadService;
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
+
|
|
|
|
+import java.io.IOException;
|
|
|
|
+import java.io.InputStream;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * @author: Diors.Po
|
|
|
|
+ * @Email: 171256175@qq.com
|
|
|
|
+ * @date 2019-08-05 15:42
|
|
|
|
+ */
|
|
|
|
+@Slf4j
|
|
|
|
+@Service
|
|
|
|
+public class OSSUploadServiceImpl implements UploadService {
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private OSS ossClient;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private OSSConfiguration ossConfig;
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public String uploadImage(MultipartFile file, Long userId) {
|
|
|
|
+ String fileName = UploadType.IMAGE+file.getOriginalFilename().substring(0,file.getOriginalFilename().lastIndexOf("."))+"_"
|
|
|
|
+ +userId+"_"
|
|
|
|
+ +System.currentTimeMillis()+""
|
|
|
|
+ +file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."), file.getOriginalFilename().length());
|
|
|
|
+ return doUpload(fileName, file);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public String uploadReport(MultipartFile file, Long userId) {
|
|
|
|
+ String fileName = UploadType.REPORT+file.getOriginalFilename().substring(0,file.getOriginalFilename().lastIndexOf("."))+"_"
|
|
|
|
+ +userId+"_"
|
|
|
|
+ +System.currentTimeMillis()+""
|
|
|
|
+ +file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."), file.getOriginalFilename().length());
|
|
|
|
+ return doUpload(fileName, file);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public String uploadRequirment(MultipartFile file, Long userId) {
|
|
|
|
+ String fileName = UploadType.REQUIREMENT_FILE+file.getOriginalFilename().substring(0,file.getOriginalFilename().lastIndexOf("."))+"_"
|
|
|
|
+ +userId+"_"
|
|
|
|
+ +System.currentTimeMillis()+""
|
|
|
|
+ +file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."), file.getOriginalFilename().length());
|
|
|
|
+ return doUpload(fileName, file); }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public String uploadAPK(MultipartFile file, Long userId) {
|
|
|
|
+ String fileName = UploadType.APK+file.getOriginalFilename().substring(0,file.getOriginalFilename().lastIndexOf("."))+"_"
|
|
|
|
+ +userId+"_"
|
|
|
|
+ +System.currentTimeMillis()+""
|
|
|
|
+ +file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."), file.getOriginalFilename().length());
|
|
|
|
+ return doUpload(fileName, file);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public String uploadAuthInfo(MultipartFile file, Long userId) {
|
|
|
|
+ String fileName = UploadType.AUTH_INFO+userId+"/"+file.getOriginalFilename().substring(0,file.getOriginalFilename().lastIndexOf("."))+"_"
|
|
|
|
+ +userId+"_"
|
|
|
|
+ +System.currentTimeMillis()+""
|
|
|
|
+ +file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."), file.getOriginalFilename().length());
|
|
|
|
+ return doUpload(fileName, file);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public String uploadGeneralFile(MultipartFile file){
|
|
|
|
+ String fileName = UploadType.OTHERS+file.getOriginalFilename().substring(0,file.getOriginalFilename().lastIndexOf("."))+"_"
|
|
|
|
+ +System.currentTimeMillis()+""
|
|
|
|
+ +file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."), file.getOriginalFilename().length());
|
|
|
|
+ return doUpload(fileName, file);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private String doUpload(String fileName, MultipartFile file){
|
|
|
|
+ try {
|
|
|
|
+ PutObjectResult result = ossClient.putObject(ossConfig.getBucketName(), fileName, file.getInputStream());
|
|
|
|
+ return ossConfig.getBaseUrl()+fileName;
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
+ log.error("OSS上传出错!", e);
|
|
|
|
+ throw new BaseException(e.getMessage());
|
|
|
|
+ } finally {
|
|
|
|
+ ossClient.shutdown();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|