Sfoglia il codice sorgente

添加对 img channel 的匿名访问权限

reghao 2 anni fa
parent
commit
ed8173dfe4

+ 3 - 2
oss-store/src/main/java/cn/reghao/oss/store/controller/ObjectGetController.java

@@ -46,8 +46,9 @@ public class ObjectGetController {
             return;
         }
 
-        if (objectName.startsWith(UploadChannel.avatar.getPrefix()) ||
-                objectName.startsWith(UploadChannel.image.getPrefix())) {
+        if (objectName.startsWith(UploadChannel.avatar.getPrefix())
+                || objectName.startsWith(UploadChannel.image.getPrefix())
+                || objectName.startsWith(UploadChannel.img.getPrefix())) {
             getObjectService.getObject(objectName);
             return;
         }

+ 2 - 1
oss-store/src/main/java/cn/reghao/oss/store/controller/ObjectUploadController.java

@@ -18,6 +18,7 @@ import cn.reghao.oss.store.util.StringUtil;
 import cn.reghao.oss.store.util.UserContext;
 import org.apache.commons.io.FileUtils;
 import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -52,7 +53,7 @@ public class ObjectUploadController {
         return WebResult.failWithMsg("not implement");
     }
 
-    @PostMapping(value = "/")
+    @PostMapping(value = "/", produces = MediaType.APPLICATION_JSON_VALUE)
     public ResponseEntity<String> postObject(MultipartFile file, Integer channelId,
                                              String client, String sha256sum, Long userId) throws Exception {
         /* permission check */

+ 6 - 1
oss-store/src/main/java/cn/reghao/oss/store/inerceptor/AccessLogInterceptor.java

@@ -1,6 +1,8 @@
 package cn.reghao.oss.store.inerceptor;
 
 import cn.reghao.jutil.web.ServletUtil;
+import cn.reghao.oss.api.constant.UploadChannel;
+import cn.reghao.oss.store.util.ObjectUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.lang.Nullable;
 import org.springframework.stereotype.Component;
@@ -37,7 +39,10 @@ public class AccessLogInterceptor implements HandlerInterceptor {
             return true;
         }
 
-        if (referer == null || !hasPrefix(referer)) {
+        String objectName = uri.replaceFirst("/", "");
+        if (objectName.startsWith(UploadChannel.img.getPrefix())) {
+            return true;
+        } else if (referer == null || !hasPrefix(referer)) {
             log.info("request {} from {}", uri, referer);
             response.setStatus(403);
             return false;