|
@@ -7,6 +7,7 @@ import cn.hutool.extra.spring.SpringUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.aliyun.oss.OSSClient;
|
|
|
+import com.aliyun.oss.model.ListObjectsRequest;
|
|
|
import com.aliyun.oss.model.OSSObjectSummary;
|
|
|
import com.aliyun.oss.model.ObjectListing;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
@@ -24,9 +25,11 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.io.File;
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -56,27 +59,49 @@ public class CountSizeOssHandler {
|
|
|
}
|
|
|
|
|
|
Map<String, Long> map = new HashMap<>();
|
|
|
- ObjectListing objectListing = ossClient.listObjects("4dkankan", dirs);
|
|
|
- for (OSSObjectSummary objectSummary : objectListing.getObjectSummaries()) {
|
|
|
- String key = objectSummary.getKey();
|
|
|
- String[] split = key.split("/");
|
|
|
- key = split[1];
|
|
|
- Long size = map.get(key);
|
|
|
- if(Objects.isNull(size)){
|
|
|
- size = 0L;
|
|
|
+
|
|
|
+ try {
|
|
|
+ boolean flag = true;
|
|
|
+ String nextMaker = null;
|
|
|
+ ListObjectsRequest listObjectsRequest = new ListObjectsRequest("4dkankan");
|
|
|
+ //指定下一级文件
|
|
|
+ listObjectsRequest.setPrefix(dirs);
|
|
|
+ //设置分页的页容量
|
|
|
+ listObjectsRequest.setMaxKeys(200);
|
|
|
+ do {
|
|
|
+ //获取下一页的起始点,它的下一项
|
|
|
+ listObjectsRequest.setMarker(nextMaker);
|
|
|
+ ObjectListing objectListing = ossClient.listObjects(listObjectsRequest);
|
|
|
+ for (OSSObjectSummary objectSummary : objectListing.getObjectSummaries()) {
|
|
|
+ String key = objectSummary.getKey();
|
|
|
+ String[] split = key.split("/");
|
|
|
+ key = split[1];
|
|
|
+ Long size = map.get(key);
|
|
|
+ if(Objects.isNull(size)){
|
|
|
+ size = 0L;
|
|
|
+ }
|
|
|
+ size += objectSummary.getSize();
|
|
|
+ map.put(key, size);
|
|
|
+ }
|
|
|
+
|
|
|
+ nextMaker = objectListing.getNextMarker();
|
|
|
+ //全部执行完后,为false
|
|
|
+ flag = objectListing.isTruncated();
|
|
|
+ } while (flag);
|
|
|
+
|
|
|
+ Set<String> strings = map.keySet();
|
|
|
+ Long total = 0L;
|
|
|
+ for (String key : strings) {
|
|
|
+ total += map.get(key);
|
|
|
+ log.info(key + ":" + map.get(key));
|
|
|
}
|
|
|
- size += objectSummary.getSize();
|
|
|
- map.put(key, size);
|
|
|
- }
|
|
|
|
|
|
- Set<String> strings = map.keySet();
|
|
|
- Long total = 0L;
|
|
|
- for (String key : strings) {
|
|
|
- total += map.get(key);
|
|
|
- log.info(key + ":" + map.get(key));
|
|
|
+ log.info("总大小:{}", total);
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
}
|
|
|
|
|
|
- log.info("总大小:{}", total);
|
|
|
+
|
|
|
|
|
|
XxlJobHelper.log("countSizeOssHandler end.....");
|
|
|
}
|