Forráskód Böngészése

获取解冻进度条

lyhzzz 2 éve
szülő
commit
b4f6d8c760

+ 43 - 0
4dkankan-utils-fyun-oss/src/main/java/com/fdkankan/fyun/oss/OssFileService.java

@@ -16,6 +16,7 @@ import org.springframework.util.ObjectUtils;
 import org.springframework.util.StringUtils;
 
 import java.io.*;
+import java.math.BigDecimal;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
@@ -330,6 +331,48 @@ public class OssFileService extends AbstractFYunFileService {
     }
 
     @Override
+    public void restoreFolder(String bucket,String folderName){
+        ObjectMetadata objectMetadata ;
+
+        List<String> objectList = this.listRemoteFiles(bucket, folderName);
+        if(CollUtil.isEmpty(objectList)){
+            return;
+        }
+        for (String objectName : objectList) {
+            objectMetadata =  ossClient.getObjectMetadata(bucket, objectName);
+            // 校验Object是否为归档类型Object。
+            StorageClass storageClass = objectMetadata.getObjectStorageClass();
+            if (storageClass == StorageClass.Archive) {
+                // 解冻Object。
+                ossClient.restoreObject(bucket, objectName);
+            }
+        }
+    }
+
+    @Override
+    public Integer getRestoreFolderProcess(String bucket,String folderName){
+        ObjectMetadata objectMetadata ;
+
+        List<String> objectList = this.listRemoteFiles(bucket, folderName);
+        if(CollUtil.isEmpty(objectList)){
+            return 100;
+        }
+        List<String> restoreFileList = new ArrayList<>();
+        for (String objectName : objectList) {
+            objectMetadata = ossClient.getObjectMetadata(bucket, objectName);
+            if(objectMetadata.isRestoreCompleted()){
+                restoreFileList.add(objectName);
+            }
+        }
+        if(objectList.size() <= restoreFileList.size() ){
+            return 100;
+        }
+        BigDecimal rite = new BigDecimal(restoreFileList.size()).divide(new BigDecimal(objectList.size()),2,BigDecimal.ROUND_HALF_UP);
+        BigDecimal multiply = rite.multiply(new BigDecimal(100));
+        return multiply.intValue();
+    }
+
+    @Override
     public void restoreFolder(String bucket, String folderName, Integer priority) {
 
         List<String> objectList = this.listRemoteFiles(bucket, folderName);

+ 4 - 0
4dkankan-utils-fyun-parent/src/main/java/com/fdkankan/fyun/face/FYunFileServiceInterface.java

@@ -331,6 +331,10 @@ public interface FYunFileServiceInterface {
 
     public Boolean checkStore(String bucket,String url);
 
+    public void restoreFolder(String bucket,String url);
+
+    public Integer getRestoreFolderProcess(String bucket,String url);
+
     public void restoreFolder(String bucket, String folderName, Integer priority);
 
     public void restoreFile(String bucket, String objectName, Integer priority);