|
@@ -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);
|
|
|
+ }
|
|
|
}
|