Explorar o código

修复OSS读取和判断文件存在的bug;增加FileDownloadController的日志显示

luoshi %!s(int64=4) %!d(string=hai) anos
pai
achega
3d06ed9ba7

+ 3 - 3
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/file/service/impl/FileServiceImpl.java

@@ -11,7 +11,6 @@ import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
-import java.io.FileInputStream;
 import java.io.InputStream;
 import java.util.LinkedList;
 import java.util.List;
@@ -242,8 +241,9 @@ public class FileServiceImpl implements FileService, InitializingBean {
 
         //DiskStore ds = new DiskStore("/Users/luoshi/Downloads");
         //String md5 = BinaryUtil.toBase64String(BinaryUtil.calculateMd5(ds.read("123456.jpg")));
-        service.uploadSheet(new FileInputStream("/Users/luoshi/Downloads/123456.jpg"),
-                "7e9b368ff5da88ff2413c2c9083c481d", 1, "123456", 1);
+        //        service.uploadSheet(new FileInputStream("/Users/luoshi/Downloads/123456.jpg"),
+        //                "7e9b368ff5da88ff2413c2c9083c481d", 1, "123456", 1);
+        service.downloadSheet(1, "16110003", 1);
         System.out.println("success");
     }
 }

+ 2 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/file/store/impl/OssStore.java

@@ -68,7 +68,7 @@ public class OssStore implements FileStore {
 
     @Override
     public byte[] read(String path) throws Exception {
-        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKey, accessKey);
+        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKey, accessSecret);
         OSSObject ossObject = ossClient.getObject(bucket, path);
         ByteArrayOutputStream ous = new ByteArrayOutputStream();
         IOUtils.copy(ossObject.getObjectContent(), ous);
@@ -78,7 +78,7 @@ public class OssStore implements FileStore {
 
     @Override
     public boolean exist(String path) {
-        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKey, accessKey);
+        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKey, accessSecret);
         try {
             return ossClient.doesObjectExist(bucket, path);
         } catch (Exception e) {

+ 10 - 2
stmms-web/src/main/java/cn/com/qmth/stmms/monitor/FileDownloadController.java

@@ -4,6 +4,8 @@ import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
 import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
 import cn.com.qmth.stmms.biz.file.service.FileService;
 import org.apache.commons.io.IOUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.PathVariable;
@@ -19,6 +21,8 @@ import java.io.ByteArrayInputStream;
 @RequestMapping("/file")
 public class FileDownloadController {
 
+    private static Logger log = LoggerFactory.getLogger(FileDownloadController.class);
+
     @Autowired
     private FileService fileService;
 
@@ -37,6 +41,7 @@ public class FileDownloadController {
             // 直接下载模式
             download(response, fileService.downloadSheet(examId, examNumber, index));
         } catch (Exception e) {
+            log.error("download sheet error", e);
             response.sendError(HttpServletResponse.SC_NOT_FOUND);
         }
     }
@@ -55,16 +60,18 @@ public class FileDownloadController {
                 // 直接下载模式
                 download(response, fileService.downloadSlice(examId, student.getSecretNumber(), index));
             } else {
+                log.error("download slice error: student not found");
                 response.sendError(HttpServletResponse.SC_NOT_FOUND);
             }
         } catch (Exception e) {
+            log.error("download slice error", e);
             response.sendError(HttpServletResponse.SC_NOT_FOUND);
         }
     }
 
     @RequestMapping("/ft-package/{examId}/{packageCode}/{index}.jpg")
-    public void getPackage(HttpServletResponse response, @PathVariable Integer examId,
-            @PathVariable String packageCode, @PathVariable Integer index) throws Exception {
+    public void getPackage(HttpServletResponse response, @PathVariable Integer examId, @PathVariable String packageCode,
+            @PathVariable Integer index) throws Exception {
         try {
             // 重定向模式
             // redirect(response, fileService.getFileServer()
@@ -72,6 +79,7 @@ public class FileDownloadController {
             // 直接下载模式
             download(response, fileService.downloadPackage(examId, packageCode, index));
         } catch (Exception e) {
+            log.error("download package error", e);
             response.sendError(HttpServletResponse.SC_NOT_FOUND);
         }
     }