|
@@ -194,6 +194,50 @@ public class UploadToOssUtil {
|
|
|
return keyList;
|
|
|
}
|
|
|
|
|
|
+ public List<String> listKeysFromAli(String bucket,String sourcePath) {
|
|
|
+ if("local".equals(type)){
|
|
|
+ return localToOssUtil.listKeysFromAli(sourcePath);
|
|
|
+ }
|
|
|
+ List<String> keyList = new ArrayList<>();
|
|
|
+ OSSClient ossClient = new OSSClient(point, key, secrey);
|
|
|
+ try {
|
|
|
+ boolean flag = true;
|
|
|
+ String nextMaker = null;
|
|
|
+ ListObjectsRequest listObjectsRequest = new ListObjectsRequest(this.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;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取文件内容-阿里云
|
|
|
* @param objectName
|