lyhzzz 2 months ago
parent
commit
50d2eb8900
1 changed files with 73 additions and 1 deletions
  1. 73 1
      src/main/java/com/fdkankan/fusion/common/util/UploadToOssUtil.java

+ 73 - 1
src/main/java/com/fdkankan/fusion/common/util/UploadToOssUtil.java

@@ -203,7 +203,48 @@ public class UploadToOssUtil {
 		try {
 			boolean flag = true;
 			String nextMaker = null;
-			ListObjectsRequest listObjectsRequest = new ListObjectsRequest(this.bucket);
+			ListObjectsRequest listObjectsRequest = new ListObjectsRequest(bucket);
+			//指定下一级文件
+			listObjectsRequest.setPrefix(sourcePath);
+			//设置分页的页容量
+			listObjectsRequest.setMaxKeys(200);
+			do
+			{
+				//获取下一页的起始点,它的下一项
+				listObjectsRequest.setMarker(nextMaker);
+				ObjectListing objectListing = ossClient.listObjects(listObjectsRequest);
+				List<OSSObjectSummary> objectSummaries = objectListing.getObjectSummaries();
+				List<String> collect = objectSummaries.stream().map(summary -> {
+					return summary.getKey();
+				}).collect(Collectors.toList());
+				if(CollUtil.isNotEmpty(collect)){
+					keyList.addAll(collect);
+				}
+				nextMaker = objectListing.getNextMarker();
+				//全部执行完后,为false
+				flag = objectListing.isTruncated();
+			} while (flag);
+		}catch (Exception e){
+			log.error("获取文件列表失败,path="+sourcePath, e);
+		}finally {
+			if(ossClient != null){
+				ossClient.shutdown();
+			}
+		}
+
+
+		ossClient.shutdown();
+
+		return keyList;
+	}
+
+	public static List<String> listKeysFromAli(String point,String key ,String secrey,String bucket,String sourcePath) {
+		List<String> keyList = new ArrayList<>();
+		OSSClient ossClient = new OSSClient(point, key, secrey);
+		try {
+			boolean flag = true;
+			String nextMaker = null;
+			ListObjectsRequest listObjectsRequest = new ListObjectsRequest(bucket);
 			//指定下一级文件
 			listObjectsRequest.setPrefix(sourcePath);
 			//设置分页的页容量
@@ -476,4 +517,35 @@ public class UploadToOssUtil {
 	public boolean fileExist(String objKey) {
 		return this.existKey(objKey);
 	}
+
+
+	public static void main(String[] args) {
+		String bucket ="laser-data";
+		String key ="LTAI5tJwboCj3r4vUNkSmbyX";
+		String secrey ="meDy7VYAWbg8kZCKsoUZcIYQxigWOy";
+		String point ="http://oss-cn-shenzhen.aliyuncs.com";
+
+		String filePath = "testdata/SG-t-N4FjKEtJIjo/data/SG-t-N4FjKEtJIjo/webcloud";
+
+		OSSClient ossClient = new OSSClient(point, key, secrey);
+		Long total = 0L;
+		try {
+			List<String> files = listKeysFromAli(point, key, secrey, bucket,filePath);
+			if (ObjectUtils.isEmpty(files)) {
+			}
+			for (String file : files) {
+				GetObjectRequest getObjectMetadataRequest = new GetObjectRequest(bucket, file);
+				Long size = ossClient.getObjectMetadata(getObjectMetadataRequest).getContentLength();
+				total += size;
+			}
+
+		}catch (Exception e){
+			log.info("oss-getFileInfo-error:{}",e);
+		}finally {
+			if(ossClient != null){
+				ossClient.shutdown();
+			}
+		}
+		System.out.println(total);
+	}
 }