plf 4 роки тому
батько
коміт
0e76e38e6c

+ 8 - 0
src/main/java/com/caimei/www/controller/authorized/document/DocumentAuthController.java

@@ -116,4 +116,12 @@ public class DocumentAuthController {
         documentAuthService.deleteFile();
     }
 
+    /**
+     * 文件下载
+     */
+    @GetMapping("/downFileAll")
+    public Mono<JsonModel> downFileAll(Integer pdfId) {
+        return documentAuthService.downFileAll(pdfId);
+    }
+
 }

+ 2 - 0
src/main/java/com/caimei/www/service/page/DocumentAuthService.java

@@ -87,4 +87,6 @@ public interface DocumentAuthService {
      * @return
      */
     void deleteFile();
+
+    Mono<JsonModel> downFileAll(Integer pdfId);
 }

+ 33 - 0
src/main/java/com/caimei/www/service/page/impl/DocumentAuthServiceImpl.java

@@ -3,6 +3,7 @@ package com.caimei.www.service.page.impl;
 import com.aliyun.oss.OSS;
 import com.aliyun.oss.OSSClientBuilder;
 import com.aliyun.oss.model.GetObjectRequest;
+import com.aliyun.oss.model.OSSObject;
 import com.caimei.www.mapper.DocumentAuthDao;
 import com.caimei.www.pojo.JsonModel;
 import com.caimei.www.pojo.document.CookieBuilder;
@@ -27,7 +28,10 @@ import org.springframework.util.StringUtils;
 import reactor.core.publisher.Mono;
 
 import javax.annotation.Resource;
+import java.io.BufferedReader;
 import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
 import java.nio.charset.StandardCharsets;
 import java.util.Date;
 import java.util.HashMap;
@@ -247,4 +251,33 @@ public class DocumentAuthServiceImpl implements DocumentAuthService {
         //删除空文件夹
         file.delete();
     }
+
+    @Override
+    public Mono<JsonModel> downFileAll(Integer pdfId) {
+        StringBuilder date = new StringBuilder();
+        try {
+            OssArchivePdf ossArchivePdf = documentAuthDao.findOssArchivePdfById(pdfId);
+            // 创建OSSClient实例。
+            OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
+            // ossObject包含文件所在的存储空间名称、文件名称、文件元信息以及一个输入流。
+            OSSObject ossObject = ossClient.getObject(bucketName, ossArchivePdf.getOssName());
+            // 读取文件内容。
+            System.out.println("Object content:");
+            BufferedReader reader = new BufferedReader(new InputStreamReader(ossObject.getObjectContent()));
+            while (true) {
+                String line = reader.readLine();
+                if (line == null) {
+                    break;
+                }
+                date.append(line);
+            }
+            // 数据读取完成后,获取的流必须关闭,否则会造成连接泄漏,导致请求无连接可用,程序无法正常工作。
+            reader.close();
+            // 关闭OSSClient。
+            ossClient.shutdown();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return Mono.just(JsonModel.success(JsonModel.success(date)));
+    }
 }