列举文件

最近更新时间:2021-12-16 11:41:53

/**
 *  列出一个bucket下的object,返回的最大数为1000条
 */

public ObjectListing listObjectsSimple() {
       // yourEndpoint填写Bucket所在地域对应的Endpoint。以中国(北京)为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com。如果使用自定义域名,设置endpoint为自定义域名,同时设置domainMode为true
       String endpoint = "yourEndpoint";
       // 金山云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
       String accessKeyId = "yourAccessKeyId";
       String accessKeySecret = "yourAccessKeySecret";
       // 创建Ks3ClientConfig 实例。
       Ks3ClientConfig config = new Ks3ClientConfig();
       // 设置域名
       config.setEndpoint(endpoint);
       // 创建Ks3Client实例
       Ks3 client = new Ks3Client(accessKeyId, accessKeySecret, config);
       // 获取桶下面的文件列表,返回的最大数为1000条
       ObjectListing list = client.listObjects("<您的bucket名称>");
       // 遍历文件列表
       for (Ks3ObjectSummary objectSummary : list) {
            // 获取文件的名字
            objectSummary.getKey();
            // 获取文件的存储类型
            objectSummary.getStorageClass();
            // 获取文件的其他信息
            // objectSummary.
       }
       // 返回文件列表
       return list;
} 


/**
 * 将列出bucket下满足object key前缀为指定字符串的object,返回的最大数为1000条
 */
public ObjectListing listObjectsWithPrefix(){
       // yourEndpoint填写Bucket所在地域对应的Endpoint。以中国(北京)为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com。如果使用自定义域名,设置endpoint为自定义域名,同时设置domainMode为true
       String endpoint = "yourEndpoint";
       // 金山云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
       String accessKeyId = "yourAccessKeyId";
       String accessKeySecret = "yourAccessKeySecret";
       // 创建Ks3ClientConfig 实例。
       Ks3ClientConfig config = new Ks3ClientConfig();
       // 设置域名
       config.setEndpoint(endpoint);
       // 创建Ks3Client实例
       Ks3 client = new Ks3Client(accessKeyId, accessKeySecret, config);
       // 根据前缀去获取桶的文件列表
	     ObjectListing list = client.listObjects("<您的bucket名称>","<object key前缀>");
			 // 遍历文件列表
       for (Ks3ObjectSummary objectSummary : list) {
            // 获取文件的名字
            objectSummary.getKey();
            // 获取文件的存储类型
            objectSummary.getStorageClass();
            // 获取文件的其他信息
            // objectSummary.
       }
       // 返回文件列表
	     return list;
}

/**
 * 自己调节列出object的参数,
 */

public ObjectListing listObjectsUseRequest(){
       // yourEndpoint填写Bucket所在地域对应的Endpoint。以中国(北京)为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com。如果使用自定义域名,设置endpoint为自定义域名,同时设置domainMode为true
       String endpoint = "yourEndpoint";
       // 金山云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
       String accessKeyId = "yourAccessKeyId";
       String accessKeySecret = "yourAccessKeySecret";
       // 创建Ks3ClientConfig 实例。
       Ks3ClientConfig config = new Ks3ClientConfig();
       // 设置域名
       config.setEndpoint(endpoint);
       // 创建Ks3Client实例
       Ks3 client = new Ks3Client(accessKeyId, accessKeySecret, config);
       ObjectListing list = null;
       //新建一个ListObjectsRequest
       ListObjectsRequest request = new ListObjectsRequest("<您的bucket名称>");
       //设置参数
       request.setMaxKeys("<max keys>");//指定返回条数最大值
       request.setPrefix("<object key前缀>");//返回以指定前缀开头的object
       request.setDelimiter("<delimiter>");//设置文件分隔符,系统将根据该分隔符组织文件夹结构,默认是"/"
       //执行操作
       list = client.listObjects(request);
       for (Ks3ObjectSummary objectSummary : list) {
            // 获取文件的名字
            objectSummary.getKey();
            // 获取文件的存储类型
            objectSummary.getStorageClass();
       }
       // 返回文件列表
       return list;
}



/**
 * 使用循环列出所有object
 */
public void listAllObjects(){
       // yourEndpoint填写Bucket所在地域对应的Endpoint。以中国(北京)为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com。如果使用自定义域名,设置endpoint为自定义域名,同时设置domainMode为true
       String endpoint = "yourEndpoint";
       // 金山云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
       String accessKeyId = "yourAccessKeyId";
       String accessKeySecret = "yourAccessKeySecret";
       // 创建Ks3ClientConfig 实例。
       Ks3ClientConfig config = new Ks3ClientConfig();
       // 设置域名
       config.setEndpoint(endpoint);
       // 创建Ks3Client实例
       Ks3 client = new Ks3Client(accessKeyId, accessKeySecret, config);
       ObjectListing list = null;
       //初始化一个请求
       ListObjectsRequest request = new ListObjectsRequest("<您的bucket名称>");
       do {
              //isTruncated为true时表示之后还有object,所以应该继续循环
              if (list!=null&&list.isTruncated()) {
                     // 在ObjectListing中将返回下次请求的marker
                     // 如果请求的时候没有设置delimiter,则不会返回nextMarker,需要使用上一次list的最后一个key做为nextMarker
                     request.setMarker(list.getObjectSummaries().get(list.getObjectSummaries().size() - 1).getKey());
              }
              list = client.listObjects(request);
              for (Ks3ObjectSummary objectSummary : list) {
                     // 获取文件的名字
                     objectSummary.getKey();
                     // 获取文件的存储类型
                     objectSummary.getStorageClass();
              }
       } while (list.isTruncated());
}

注意:

  • 单次list,最多只可能返回1000个文件。如果需要返回更多,请通过marker参数设置游标。
  • 具体输入输出参数说明详见GET Bucket(list Object)

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

内容不全,不深入
内容更新不及时
描述不清晰,比较混乱
系统或功能太复杂,缺乏足够的引导
内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈