gpt4 book ai didi

java - 如何将关键对象(s3)的列表(包含特定字符串)过滤到新列表中

转载 作者:行者123 更新时间:2023-12-01 19:41:30 24 4
gpt4 key购买 nike

我正在尝试从包含特定字符串的 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() 来完成它,但我正在努力解决它。

最佳答案

你可以尝试这样的事情:

ObjectListing objectListing = s3client.listObjects(listObjectsRequest);
List<S3ObjectSummary> summaries = objectListing.getObjectSummaries();
List<String> lst = new ArrayList<>();
do {
lst.addAll(summaries.stream()
.map(S3ObjectSummary::getKey) // creates a string stream
.filter(s -> s.contains(filterStr)) // filters all values containing filterStr
.collect(Collectors.toList()));
objectListing = s3client.listNextBatchOfObjects(objectListing);
summaries = objectListing.getObjectSummaries();
} while (!summaries.isEmpty());

关于java - 如何将关键对象(s3)的列表(包含特定字符串)过滤到新列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55283182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com