如何删除Java中S3存储桶中带有`term / classID /`前缀,名称以`syllabus-开头的文件

时间:2019-01-11 22:08:14

标签: java amazon-s3

如何批量删除Amazon S3存储桶中的文件?

我正在尝试将文件上传到我的S3存储桶中,一旦上传了这些文件,我想批量删除带有term/classID/前缀的文件,并在Java的S3存储桶中以syllabus-开头。

最好的选择是尝试一次删除它们,因为在我的情况下访问S3耗费时间。

这是我当前正在做的事情((path = "term/classID/", prefix="syllabus-")正在获取文件,然后删除名称中带有"syllabus-"的文件。

   @Override
   public void deleteFilesWithPrefix( String path, String prefix ) throws IOException {
      ObjectListing objectsList = amazonS3Client.listObjects( bucketName, path );
      objectsList.getObjectSummaries().forEach( x -> deleteObjectsWithPrefix( x, prefix ) );

   }

   private void deleteObjectsWithPrefix( S3ObjectSummary x, String prefix ) {
      if ( x.getKey().contains( prefix ) ){
         s3Dao.deleteFile( bucketName, x.getKey() );
      }
   }

0 个答案:

没有答案