Browse Source

oss上传逻辑完善

ZhangWenQiang 4 years ago
parent
commit
da7deac0c6

+ 14 - 5
happy-common/happy-common-core/src/main/java/org/jeecg/common/oss/OSSClientUtil.java

@@ -5,6 +5,7 @@ import com.aliyun.oss.OSS;
 import com.aliyun.oss.OSSException;
 import com.aliyun.oss.model.*;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.util.CommonUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -73,14 +74,19 @@ public class OSSClientUtil {
             //新文件名=文件名+时间戳+后缀名
             fileName = originalFilename.substring(0, originalFilename.lastIndexOf(".")) + "_" + System.currentTimeMillis() + substring;
             objectName = fileDir + fileName;
+            //上传返回
+            String ret = "";
             if (file.getSize() > pageSize) {
                 log.info("分片上传");
                 //分片上传
-                this.uploadPartOSS(objectName, file);
+                ret = this.uploadPartOSS(objectName, file);
             } else {
                 log.info("简单上传");
                 //简单上传
-                this.uploadFileOSS(inputStream, objectName);
+                ret = this.uploadFileOSS(inputStream, objectName);
+            }
+            if (StringUtils.isBlank(ret)) {
+                return "文件上传失败";
             }
         } catch (IOException e) {
             e.printStackTrace();
@@ -143,7 +149,8 @@ public class OSSClientUtil {
      * @param objectName
      * @param file
      */
-    public void uploadPartOSS(String objectName, MultipartFile file) {
+    public String uploadPartOSS(String objectName, MultipartFile file) {
+        String ret = "";
         try {
             //partETags是PartETag的集合。PartETag由分片的ETag和分片号组成。
             List<PartETag> partETags = new ArrayList<PartETag>();
@@ -178,20 +185,22 @@ public class OSSClientUtil {
                 partETags.add(uploadPartResult.getPartETag());
             }
             //完成上传
-            completeMultipartUpload(objectName, partETags, uploadId);
+            ret = completeMultipartUpload(objectName, partETags, uploadId);
         } catch (IOException e) {
             e.printStackTrace();
         }
+        return ret;
     }
 
     /**
      * 完成分片上传
      */
-    public void completeMultipartUpload(String fileName, List<PartETag> partETags, String uploadId) {
+    public String completeMultipartUpload(String fileName, List<PartETag> partETags, String uploadId) {
         //创建CompleteMultipartUploadRequest对象。
         CompleteMultipartUploadRequest completeMultipartUploadRequest = new CompleteMultipartUploadRequest(bucketName, fileName, uploadId, partETags);
         // 完成上传。
         CompleteMultipartUploadResult completeMultipartUploadResult = ossClient.completeMultipartUpload(completeMultipartUploadRequest);
+        return completeMultipartUploadResult.getETag();
     }
 
     /**