代码之家  ›  专栏  ›  技术社区  ›  madhead

使用AWS S3 SDK for Java 2.x列出对象

  •  0
  • madhead  · 技术社区  · 6 年前

    我有一个水桶( logs )在AmazonS3中( us-east-1

    logs
    ├── peacekeepers
    │   └── year=2018
    │       ├── month=11
    │       │   ├── day=01
    │       │   ├── day=…
    │       │   └── day=30
    │       └── month=12
    │           ├── day=01
    │           ├── day=…
    │           └── day=19
    │               ├── 00:00 — 01:00.log
    │               ├── …
    │               └── 23:00 — 00:00.log
    ├── rep-hunters
    ├── retro-fans
    └── rubber-duckies
    

    我想列出特定日期、月份、年份的所有对象(日志)

    我该怎么做呢 AWS SDK for Java 2.x ?

    1 回复  |  直到 6 年前
        1
  •  4
  •   madhead    6 年前

    新SDK使使用分页结果变得更加容易:

    S3Client client = S3Client.builder().region(Region.US_EAST_1).build();
    ListObjectsV2Request request =
            ListObjectsV2Request
                    .builder()
                    .bucket("logs")
                    .prefix("peacekeepers/year=2018/month=12")
                    // .prefix("peacekeepers/year=2018/month=12/day=19")
                    .build();
    ListObjectsV2Iterable response = client.listObjectsV2Paginator(request);
    
    for (ListObjectsV2Response page : response) {
        for (S3Object object : page.contents()) {
            // Consume the object
            System.out.println(object.key());
        }
    }