快速删除阿里云OSS内文件

最近要把OSS里的文件清空一下,控制台操作属实是又卡又慢,无奈还是得代码操作

新建一个maven项目 依赖项如下:

  <dependencies>
    <dependency>
      <groupId>com.aliyun.oss</groupId>
      <artifactId>aliyun-sdk-oss</artifactId>
      <version>3.13.1</version>
    </dependency>
    <dependency>
      <artifactId>hutool-core</artifactId>
      <groupId>cn.hutool</groupId>
      <version>5.7.17</version>
    </dependency>
  </dependencies>

代码如下

        String endpoint = "";
        String accessKeyId = "";
        String accessKeySecret = "";
        String bucketName = "";

        ClientBuilderConfiguration conf = new ClientBuilderConfiguration();
        conf.setMaxConnections(2048);
        conf.setSocketTimeout(10000);
        conf.setConnectionTimeout(1000);
        conf.setConnectionRequestTimeout(1000);
        conf.setIdleConnectionTime(60000);
        conf.setMaxErrorRetry(1);
        conf.setProtocol(Protocol.HTTPS);
        conf.setUserAgent("cloud-oss-sdk");
        conf.setRedirectEnable(true);
        conf.setVerifySSLEnable(false);
        conf.setSupportCname(true);

        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret, conf);

        var objects = ossClient.listObjects(bucketName).getObjectSummaries();
        while (CollUtil.isNotEmpty(objects)) {
            var keys = objects.stream().map(OSSObjectSummary::getKey).toList();
            var deleteObjectsRequest = new DeleteObjectsRequest(bucketName);
            deleteObjectsRequest.setKeys(keys);
            ossClient.deleteObjects(deleteObjectsRequest);

            objects = ossClient.listObjects(bucketName).getObjectSummaries();
        }

        System.out.println("success");

把代码中的endpoint之类的替换成你自己的就行,然后执行,等success出来就完事了