Explorar el Código

更新 head 接口

reghao hace 2 años
padre
commit
4d0aa9f84e

+ 1 - 2
dfs-store/src/main/java/cn/reghao/dfs/store/controller/ObjectBasicController.java

@@ -135,13 +135,12 @@ public class ObjectBasicController {
 
     @ApiOperation("获取对象的元数据")
     @RequestMapping(value = "/**", method = RequestMethod.HEAD)
-    public String headObject() throws IOException {
+    public void headObject() throws IOException {
         String uri = ServletUtil.getRequest().getRequestURI();
         String uri1 = URLDecoder.decode(uri, StandardCharsets.UTF_8);
 
         String objectName = uri1.replaceFirst("/", "");
         getObjectService.headObject(objectName);
-        return WebResult.success();
     }
 
     @ApiOperation("获取对象")

+ 12 - 4
dfs-store/src/main/java/cn/reghao/dfs/store/service/GetObjectService.java

@@ -42,11 +42,19 @@ public class GetObjectService {
         FileMeta fileMeta = fileMetaMapper.findByObjectName(objectName);
         if (fileMeta == null) {
             response.setStatus(HttpServletResponse.SC_NOT_FOUND);
-
-            OutputStream outputStream = response.getOutputStream();
-            outputStream.flush();
-            outputStream.close();
+        } else {
+            response.setStatus(HttpServletResponse.SC_OK);
+            String contentType = fileMeta.getContentType();
+            long contentLength = fileMeta.getSize();
+            String eTag = fileMeta.getSha256sum();
+            response.setHeader("content-type", contentType);
+            response.setHeader("content-length", ""+contentLength);
+            response.setHeader("eTag", eTag);
         }
+
+        OutputStream outputStream = response.getOutputStream();
+        outputStream.flush();
+        outputStream.close();
     }
 
     public void getObject(String objectName) throws IOException {