|
@@ -16,9 +16,7 @@ import org.springframework.util.ObjectUtils;
|
|
|
|
|
|
import java.io.*;
|
|
import java.io.*;
|
|
import java.net.URL;
|
|
import java.net.URL;
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
|
|
+import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Component
|
|
@Component
|
|
@@ -386,12 +384,36 @@ public class S3FileService extends AbstractFYunFileService {
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public Boolean checkStore(String bucket, String url) {
|
|
public Boolean checkStore(String bucket, String url) {
|
|
- return null;
|
|
|
|
|
|
+ ObjectMetadata objectMetadata = s3.getObjectMetadata(bucket, url);
|
|
|
|
+ return !isRestoreCompleted(objectMetadata);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private boolean isRestoreCompleted(ObjectMetadata objectMetadata){
|
|
|
|
+ Date restoreExpirationTime = objectMetadata.getRestoreExpirationTime();
|
|
|
|
+ if(Objects.nonNull(restoreExpirationTime) && restoreExpirationTime.after(Calendar.getInstance().getTime())){
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void restoreFolder(String bucket, String url) {
|
|
public void restoreFolder(String bucket, String url) {
|
|
|
|
+ ObjectMetadata objectMetadata ;
|
|
|
|
|
|
|
|
+ List<String> objectList = this.listRemoteFiles(bucket, url);
|
|
|
|
+ if(CollUtil.isEmpty(objectList)){
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ for (String objectName : objectList) {
|
|
|
|
+ objectMetadata = s3.getObjectMetadata(bucket, objectName);
|
|
|
|
+ // 校验Object是否为归档类型Object。
|
|
|
|
+ StorageClass storageClass = objectMetadata.getArchiveStatus();
|
|
|
|
+ if (storageClass == StorageClass.) {
|
|
|
|
+ // 解冻Object。
|
|
|
|
+ RestoreObjectRequest requestRestore = new RestoreObjectRequest(bucket, url, 1);
|
|
|
|
+ s3.restoreObjectV2(requestRestore);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|