caozixuan 3 năm trước cách đây
mục cha
commit
3c9188e1b6

+ 3 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceServiceImpl.java

@@ -386,9 +386,9 @@ public class PrintCommonServiceServiceImpl implements PrintCommonService {
             stringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(format);
             if (oss) {//上传至oss\
                 String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
-//                ossUtil.ossUpload(dirName, file.getInputStream(), BinaryUtil.toBase64String(HexUtils.decodeHex(md5)));
-                FileStore fileStore = fileService.getFileStore(type.getFssType());
-                fileStore.write(dirName,file.getInputStream(),DigestUtils.md5Hex(file.getInputStream()));
+                ossUtil.ossUpload(dirName, file.getInputStream(), BinaryUtil.toBase64String(HexUtils.decodeHex(md5)));
+//                FileStore fileStore = fileService.getFileStore(type.getFssType());
+//                fileStore.write(dirName,file.getInputStream(),DigestUtils.md5Hex(file.getInputStream()));
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 jsonObject.put(SystemConstant.PATH, dirName);
             } else {//上传至服务器

+ 13 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/importData/AsyncImportTaskTemplete.java

@@ -14,6 +14,7 @@ import com.qmth.teachcloud.common.enums.TaskTypeEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.util.ConvertUtil;
+import com.qmth.teachcloud.common.util.OssUtil;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import org.apache.commons.codec.digest.DigestUtils;
@@ -67,16 +68,19 @@ public abstract class AsyncImportTaskTemplete {
      * @throws IOException
      */
     public InputStream getUploadFileInputStream(TBTask tbTask) throws Exception {
-        FileService fileService = SpringContextHolder.getBean(FileService.class);
-        ConvertUtil convertUtil = SpringContextHolder.getBean(ConvertUtil.class);
+        OssUtil ossUtil = SpringContextHolder.getBean(OssUtil.class);
+//        FileService fileService = SpringContextHolder.getBean(FileService.class);
+//        ConvertUtil convertUtil = SpringContextHolder.getBean(ConvertUtil.class);
         JSONObject jsonObject = JSONObject.parseObject(tbTask.getImportFilePath());
         String path = (String) jsonObject.get(SystemConstant.PATH);
         String type = (String) jsonObject.get(SystemConstant.TYPE);
         UploadFileEnum uploadType = Enum.valueOf(UploadFileEnum.class,(String) jsonObject.get(SystemConstant.UPLOAD_TYPE));
         InputStream inputStream = null;
         if (Objects.equals(type, SystemConstant.OSS)) {
-            FileStore fileStore = fileService.getFileStore(uploadType.getFssType());
-            inputStream = fileStore.read(path);
+            byte[] data = ossUtil.ossDownload(path);
+            inputStream = new ByteArrayInputStream(data);
+//            FileStore fileStore = fileService.getFileStore(uploadType.getFssType());
+//            inputStream = fileStore.read(path);
         } else {
             StringJoiner localPath = new StringJoiner("").add(SystemConstant.TEMP_FILES_DIR).add(File.separator).add(path);
             inputStream = new FileInputStream(new File(localPath.toString()));
@@ -90,6 +94,7 @@ public abstract class AsyncImportTaskTemplete {
      * @param tbTask
      */
     public void createTxt(TBTask tbTask) {
+        OssUtil ossUtil = SpringContextHolder.getBean(OssUtil.class);
         TBTaskService tbTaskService = SpringContextHolder.getBean(TBTaskService.class);
         ByteArrayOutputStream out = null;
         InputStream inputStream = null;
@@ -123,9 +128,10 @@ public abstract class AsyncImportTaskTemplete {
             if (Objects.equals(type, SystemConstant.OSS)) {//上传至oss
                 path = path.substring(0, path.lastIndexOf("/") + 1);
                 stringJoiner.add(path).add(SystemConstant.getUuid()).add(TXT_PREFIX).toString();
-                FileService fileService = SpringContextHolder.getBean(FileService.class);
-                FileStore fileStore = fileService.getFileStore(uploadType.getFssType());
-                fileStore.write(stringJoiner.toString(),inputStream, DigestUtils.md5Hex(inputStream));
+                ossUtil.ossUpload(stringJoiner.toString(), inputStream, null);
+//                FileService fileService = SpringContextHolder.getBean(FileService.class);
+//                FileStore fileStore = fileService.getFileStore(uploadType.getFssType());
+//                fileStore.write(stringJoiner.toString(),inputStream, DigestUtils.md5Hex(inputStream));
             } else {//上传至服务器
                 File finalFile = new File(stringJoiner.toString());
                 if (!finalFile.exists()) {

+ 3 - 8
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicAttachmentServiceImpl.java

@@ -1,11 +1,8 @@
 package com.qmth.teachcloud.common.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
-import com.aliyun.oss.common.utils.BinaryUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.boot.api.exception.ApiException;
-import com.qmth.boot.core.fss.service.FileService;
-import com.qmth.boot.core.fss.store.FileStore;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
@@ -14,7 +11,7 @@ import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.mapper.BasicAttachmentMapper;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
-import com.qmth.teachcloud.common.util.HexUtils;
+import com.qmth.teachcloud.common.util.FileStoreUtil;
 import com.qmth.teachcloud.common.util.OssUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -54,7 +51,7 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
     OssUtil ossUtil;
 
     @Resource
-    private FileService fileService;
+    private FileStoreUtil fileStoreUtil;
 
     @Autowired
     private DictionaryConfig dictionaryConfig;
@@ -203,9 +200,7 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
             stringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(format);
             if (oss) {//上传至oss\
                 String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
-//                ossUtil.ossUpload(dirName, file.getInputStream(), BinaryUtil.toBase64String(HexUtils.decodeHex(md5)));
-                FileStore fileStore = fileService.getFileStore(type.getFssType());
-                fileStore.write(dirName,file.getInputStream(),DigestUtils.md5Hex(file.getInputStream()));
+                fileStoreUtil.ossUpload(dirName,file.getInputStream(),type.getFssType());
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 jsonObject.put(SystemConstant.PATH, dirName);
             } else {//上传至服务器

+ 36 - 28
teachcloud-common/src/main/java/com/qmth/teachcloud/common/util/FileStoreUtil.java

@@ -5,6 +5,7 @@ import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.io.IOUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
 import java.io.*;
@@ -14,6 +15,7 @@ import java.io.*;
  * @Author: CaoZixuan
  * @Date: 2021-08-17
  */
+@Component
 public class FileStoreUtil {
     private final static Logger log = LoggerFactory.getLogger(FileStoreUtil.class);
 
@@ -23,13 +25,13 @@ public class FileStoreUtil {
     /**
      * 上传文件
      *
-     * @param dirName 上传到地址
+     * @param dirName     上传到地址
      * @param inputStream 流
-     * @param type fileStore类型
+     * @param type        fileStore类型
      */
     public void ossUpload(String dirName, InputStream inputStream, String type) throws Exception {
         log.info("ossUpload is come in");
-        fileService.getFileStore(type).write(dirName,inputStream,DigestUtils.md5Hex(inputStream));
+        fileService.getFileStore(type).write(dirName, inputStream, DigestUtils.md5Hex(inputStream));
         log.info("dirName:{}", dirName);
     }
 
@@ -37,12 +39,12 @@ public class FileStoreUtil {
      * 上传文件
      *
      * @param dirName 上传到地址
-     * @param file 文件
-     * @param type fileStore类型
+     * @param file    文件
+     * @param type    fileStore类型
      */
-    public void ossUpload(String dirName, File file,String type) throws Exception {
+    public void ossUpload(String dirName, File file, String type) throws Exception {
         log.info("ossUpload is come in");
-        fileService.getFileStore(type).write(dirName,new FileInputStream(file), DigestUtils.md5Hex(new FileInputStream(file)));
+        fileService.getFileStore(type).write(dirName, new FileInputStream(file), DigestUtils.md5Hex(new FileInputStream(file)));
         log.info("dirName:{}", dirName);
     }
 
@@ -51,25 +53,25 @@ public class FileStoreUtil {
      *
      * @param dirName 上传到地址
      * @param content 文件
-     * @param type fileStore类型
+     * @param type    fileStore类型
      */
-    public void ossUpload(String dirName, String content,String type) throws Exception {
+    public void ossUpload(String dirName, String content, String type) throws Exception {
         log.info("ossUpload is come in");
-        fileService.getFileStore(type).write(dirName,new ByteArrayInputStream(content.getBytes()), DigestUtils.md5Hex(new ByteArrayInputStream(content.getBytes())));
+        fileService.getFileStore(type).write(dirName, new ByteArrayInputStream(content.getBytes()), DigestUtils.md5Hex(new ByteArrayInputStream(content.getBytes())));
         log.info("dirName:{}", dirName);
     }
 
     /**
      * 从文件存储上下载文件到本地
      *
-     * @param dirName 文件地址
+     * @param dirName   文件地址
      * @param localPath 本地路径
-     * @param type fileStore类型
-     * @throws IOException
+     * @param type      fileStore类型
+     * @throws Exception 异常
      */
-    public File ossDownload(String dirName, String localPath ,String type) throws Exception {
+    public File ossDownload(String dirName, String localPath, String type) throws Exception {
         log.info("ossDownload is come in");
-        return this.saveLocal(fileService.getFileStore(type).read(dirName),localPath);
+        return this.saveLocal(fileService.getFileStore(type).read(dirName), localPath);
     }
 
 
@@ -77,20 +79,33 @@ public class FileStoreUtil {
      * 从文件存储上下载文件到byte[]
      *
      * @param objectName 文件地址
-     * @param type fileStore类型
-     * @throws Exception
+     * @param type       fileStore类型
+     * @throws Exception 异常
      */
-    public byte[] ossDownload(String objectName,String type) throws Exception {
+    public byte[] ossDownload(String objectName, String type) throws Exception {
         log.info("oss Download is come in");
         return IOUtils.toByteArray(fileService.getFileStore(type).read(objectName));
     }
 
+    /**
+     * 从文件存储上下载文件到InputStream
+     *
+     * @param objectName 文件地址
+     * @param type       fileStore类型
+     * @throws Exception 异常
+     */
+    public InputStream ossDownloadIs(String objectName, String type) throws Exception {
+        log.info("oss Download is come in");
+        return fileService.getFileStore(type).read(objectName);
+    }
+
     /**
      * 文件存在某本地路径
+     *
      * @param inputStream 输入流
-     * @param dirPath 本地路径
+     * @param dirPath     本地路径
      * @return 存好的文件
-     * @throws IOException
+     * @throws IOException 异常
      */
     private File saveLocal(InputStream inputStream, String dirPath) throws IOException {
         File desFile = new File(dirPath);
@@ -98,23 +113,16 @@ public class FileStoreUtil {
             desFile.getParentFile().mkdirs(); //目标文件目录不存在的话需要创建目录
         }
         byte[] bytes = new byte[1024]; // 开辟一个拷贝缓冲区
-        OutputStream outputStream = null;
-        try {
-            outputStream = new FileOutputStream(desFile);
+        try (OutputStream outputStream = new FileOutputStream(desFile)) {
             int length;
             while ((length = inputStream.read(bytes)) != -1) { //当读到尽头后,返回值为-1这个时候停止输出,拷贝结束
                 outputStream.write(bytes, 0, length);
             }
             return desFile;
-        } catch (Exception e) {
-            throw e;
         } finally {
             if (inputStream != null) {
                 inputStream.close();
             }
-            if (outputStream != null) {
-                outputStream.close();
-            }
         }
     }
 }