Sfoglia il codice sorgente

阿里云文件大小获取

user5 4 anni fa
parent
commit
9c01f882c0

+ 31 - 0
src/main/java/com/jeeplus/common/oss/OSSClientUtil.java

@@ -809,4 +809,35 @@ public class OSSClientUtil {
         }
         return url.toString();
     }
+
+    /**
+     * 阿里云获取临时文件大小
+     * @param file
+     */
+    public Long getSimplifiedObjectMeta(String file){
+        URL url = null;
+        SimplifiedObjectMeta simplifiedObjectMeta = new SimplifiedObjectMeta();
+        try {
+
+            file = file.replace("amp;","");
+            String aliyunUrl = Global.getAliyunUrl();
+            String aliDownloadUrl = Global.getAliDownloadUrl();
+            String cons = "";
+            if (file.contains(aliyunUrl)){
+                cons = aliyunUrl;
+            }else if (file.contains("http://gangwan-app.oss-cn-hangzhou.aliyuncs.com")){
+                cons = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com";
+            }else {
+                cons = aliDownloadUrl;
+            }
+            String key = file.split(cons+"/")[1];
+            simplifiedObjectMeta = ossClient.getSimplifiedObjectMeta(bucketName, key);
+            System.out.println(simplifiedObjectMeta.getSize());
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+        return simplifiedObjectMeta.getSize();
+    }
 }

+ 14 - 0
src/main/java/com/jeeplus/modules/sys/service/WorkattachmentService.java

@@ -28,6 +28,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
 import sun.awt.AWTCharset;
 import sun.nio.cs.SingleByte;
 
+import java.math.BigDecimal;
 import java.net.URLDecoder;
 import java.util.*;
 
@@ -513,6 +514,19 @@ public class WorkattachmentService extends CrudService<WorkattachmentDao, Workat
 
 					break;
 				case "2":
+					if(StringUtils.isBlank(info.getFileSize())){
+						//从阿里云获取文件大小
+						Long fileSizeBytes = new OSSClientUtil().getSimplifiedObjectMeta(info.getUrl());
+						if(null != fileSizeBytes){
+							Double fileSize = (double)fileSizeBytes/1024/1024;
+							info.setFileSize(String.format("%.2f", fileSize));
+						}else{
+							info.setFileSize("");
+						}
+					}else{
+						Double fileSize = Double.valueOf(info.getFileSize())/1024/1024;
+						info.setFileSize(String.format("%.2f", fileSize));
+					}
 					info.setTemporaryUrl(new OSSClientUtil().getFileTemporaryLookUrl(info.getUrl()));
 					break;