我试图从包含特定字符串的s3的关键对象列表中过滤掉。
这是我的方法:

public List<String>getBucketList3(String filterStr) {

        List<String> lst = new ArrayList<>();

        ListObjectsRequest listObjectsRequest = new ListObjectsRequest()
                .withBucketName(bucketName);
        ObjectListing objectListing = s3client.listObjects(listObjectsRequest);
        for (; ; ) {
            List<S3ObjectSummary> summaries = objectListing.getObjectSummaries();
            if (summaries.size() < 1) {
                break;
            }
            summaries.forEach(s -> lst.add(s.getKey()));
            objectListing = s3client.listNextBatchOfObjects(objectListing);
        }

        return lst;
    }


我试图仅过滤掉包含'filterStr'的关键对象,并将其添加到我的'lst'数组列表字符串中。
我试图使用Java 8的stream()来完成它,但是我正在努力解决它。

最佳答案

List<String> list = lst.stream()
        .filter(s -> s.contains(filterStr))
        .collect(Collectors.toList());


如果这是适合您的情况的谓词,它可能会那样工作。

10-04 10:01