DeleteObjectWithPrefixExample.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package com.wj.other;
  2. import com.volcengine.tos.*;
  3. import com.volcengine.tos.auth.StaticCredentials;
  4. import com.volcengine.tos.model.object.DeleteObjectInput;
  5. import com.volcengine.tos.model.object.ListObjectsType2Input;
  6. import com.volcengine.tos.model.object.ListObjectsType2Output;
  7. public class DeleteObjectWithPrefixExample {
  8. public static void main(String[] args) {
  9. String endpoint = "yuyi-realme-storage.tos-cn-shanghai.volces.com";
  10. String region = "cn-shanghai";
  11. String accessKey = "AKLTYWMzMWNlMDY2ZTRiNDIxMzhlMWJjNTJiOTg0YzAxNjM";
  12. String secretKey = "TWpsa1lqUmxNekkyTkRjNU5EZGhNbUUwTUdKak1qaGxPV05rT1dVeE56WQ==";
  13. String bucketName = "yuyi-realme-storage";
  14. String prefix = null;
  15. TOSClientConfiguration configuration = TOSClientConfiguration.builder()
  16. .region(region)
  17. .endpoint(endpoint)
  18. .isCustomDomain(true) // 标识当前域名为自定义域名
  19. .credentials(new StaticCredentials(accessKey, secretKey))
  20. .build();
  21. TOSV2 tos = new TOSV2ClientBuilder().build(configuration);
  22. try{
  23. boolean isTruncated = true;
  24. String continuationToken = null;
  25. while (isTruncated) {
  26. ListObjectsType2Input input = new ListObjectsType2Input().setBucket(bucketName)
  27. .setPrefix(prefix).setContinuationToken(continuationToken);
  28. ListObjectsType2Output output = tos.listObjectsType2(input);
  29. if (output.getContents() != null){
  30. for (int i = 0; i < output.getContents().size(); i++) {
  31. String objectKey = output.getContents().get(i).getKey();
  32. DeleteObjectInput deleteInput = new DeleteObjectInput().setBucket(bucketName)
  33. .setKey(output.getContents().get(i).getKey());
  34. tos.deleteObject(deleteInput);
  35. System.out.println("deleteObject succeed, deleted key is " + objectKey);
  36. }
  37. }
  38. isTruncated = output.isTruncated();
  39. continuationToken = output.getNextContinuationToken();
  40. }
  41. } catch (TosClientException e) {
  42. // 操作失败,捕获客户端异常,一般情况是请求参数错误,此时请求并未发送
  43. System.out.println("deleteObject failed");
  44. System.out.println("Message: " + e.getMessage());
  45. if (e.getCause() != null) {
  46. e.getCause().printStackTrace();
  47. }
  48. } catch (TosServerException e) {
  49. // 操作失败,捕获服务端异常,可以获取到从服务端返回的详细错误信息
  50. System.out.println("deleteObject failed");
  51. System.out.println("StatusCode: " + e.getStatusCode());
  52. System.out.println("Code: " + e.getCode());
  53. System.out.println("Message: " + e.getMessage());
  54. System.out.println("RequestID: " + e.getRequestID());
  55. } catch (Throwable t) {
  56. // 作为兜底捕获其他异常,一般不会执行到这里
  57. System.out.println("deleteObject failed");
  58. System.out.println("unexpected exception, message: " + t.getMessage());
  59. }
  60. }
  61. }