简单列举分片上传事件
- // endpoint以杭州为例,其它region请按实际情况填写
- String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
- // 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建
- String accessKeyId = "<yourAccessKeyId>";
- String accessKeySecret = "<yourAccessKeySecret>";
- String bucketName = "<yourBucketName>";
- // 创建OSSClient实例
- OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
- // 列举分片上传事件
- ListMultipartUploadsRequest listMultipartUploadsRequest = new ListMultipartUploadsRequest(bucketName);
- MultipartUploadListing multipartUploadListing = ossClient.listMultipartUploads(listMultipartUploadsRequest);
- for (MultipartUpload multipartUpload : multipartUploadListing.getMultipartUploads()) {
- // Upload Id
- multipartUpload.getUploadId();
- // Key
- multipartUpload.getKey();
- // Date of initiate multipart upload
- multipartUpload.getInitiated();
- }
- // 关闭client
- ossClient.shutdown();
提示:
- 默认情况下,如果存储空间中的分片上传事件的数量大于1000,则只会返回1000个文件, 且返回结果中 IsTruncated 为 false,返回 NextKeyMarker 和 NextUploadIdMarker 作为下次读取的起点。
- 如果没有一次性获取所有的上传事件,可以采用分页列举的方式。
列举全部上传事件
- // endpoint以杭州为例,其它region请按实际情况填写
- String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
- // 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建
- String accessKeyId = "<yourAccessKeyId>";
- String accessKeySecret = "<yourAccessKeySecret>";
- String bucketName = "<yourBucketName>";
- // 创建OSSClient实例
- OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
- // 列举分片上传事件
- MultipartUploadListing multipartUploadListing;
- ListMultipartUploadsRequest listMultipartUploadsRequest = new ListMultipartUploadsRequest(bucketName);
- do {
- multipartUploadListing = ossClient.listMultipartUploads(listMultipartUploadsRequest);
- for (MultipartUpload multipartUpload : multipartUploadListing.getMultipartUploads()) {
- // Upload Id
- multipartUpload.getUploadId();
- // Key
- multipartUpload.getKey();
- // Date of initiate multipart upload
- multipartUpload.getInitiated();
- }
- listMultipartUploadsRequest.setKeyMarker(multipartUploadListing.getNextKeyMarker());
- listMultipartUploadsRequest.setUploadIdMarker(multipartUploadListing.getNextUploadIdMarker());
- } while (multipartUploadListing.isTruncated());
- // 关闭client
- ossClient.shutdown();
分页列举全部上传事件
默认情况下,listMultipartUploads一次列举1000个上传事件,上面的列举全部上传事件是分页的一种特殊情况,每页1000个事件。如果需要指定每页事件的数量,即一次列举的事件数量,请参考以下代码。
- // endpoint以杭州为例,其它region请按实际情况填写
- String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
- // 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建
- String accessKeyId = "<yourAccessKeyId>";
- String accessKeySecret = "<yourAccessKeySecret>";
- String bucketName = "<yourBucketName>";
- // 创建OSSClient实例
- OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
- // 列举分片上传事件
- MultipartUploadListing multipartUploadListing;
- ListMultipartUploadsRequest listMultipartUploadsRequest = new ListMultipartUploadsRequest(bucketName);
- // 每个页中事件数目
- listMultipartUploadsRequest.setMaxUploads(50);
- do {
- multipartUploadListing = ossClient.listMultipartUploads(listMultipartUploadsRequest);
- for (MultipartUpload multipartUpload : multipartUploadListing.getMultipartUploads()) {
- // Upload Id
- multipartUpload.getUploadId();
- // Key
- multipartUpload.getKey();
- // Date of initiate multipart upload
- multipartUpload.getInitiated();
- }
- listMultipartUploadsRequest.setKeyMarker(multipartUploadListing.getNextKeyMarker());
- listMultipartUploadsRequest.setUploadIdMarker(multipartUploadListing.getNextUploadIdMarker());
- } while (multipartUploadListing.isTruncated());
- // 关闭client
- ossClient.shutdown();