You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为AWS ListObjectsV2Request对象设置next continuation token

你代码的问题出在延续令牌的设置逻辑上:AWS SDK for Java 2.x 中的所有请求对象都是不可变的,ListObjectsV2Request的toBuilder()方法会返回一个全新的构建器实例,不会修改原有的请求对象。你现有代码中调用req.toBuilder().continuationToken(...)之后没有将新构建的请求赋值回原变量,导致每次循环发起的都是不带延续令牌的初始请求,所以一直返回相同的前2个对象。

修改后的可用代码如下:

ListObjectsV2Request req = ListObjectsV2Request.builder()
            .bucket(S3_BUCKET_NAME)
            .prefix(pathBuilder.toString())
            .maxKeys(2)
            .build();
ListObjectsV2Response result;
do {
    result = s3Client.listObjectsV2(req);
    for (S3Object s3Object : result.contents()) {
        System.out.printf(" - %s (size: %d)\n", s3Object.key(), s3Object.size());
    }
    // 将新构建的带延续令牌的请求赋值回req变量
    req = req.toBuilder()
            .continuationToken(result.nextContinuationToken())
            .build();
} while (result.isTruncated());

内容的提问来源于stack exchange,提问作者Meena Chaudhary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 22:15:03