Amazon s3 使用AWS S3 SDK for Java 2.x列出对象
我在Amazon S3(Amazon s3 使用AWS S3 SDK for Java 2.x列出对象,amazon-s3,aws-java-sdk-2.x,Amazon S3,Aws Java Sdk 2.x,我在Amazon S3(us-east-1)中有一个bucket(logs),其中包含按应用程序和日期划分的日志,这并不奇怪: logs ├── peacekeepers │ └── year=2018 │ ├── month=11 │ │ ├── day=01 │ │ ├── day=… │ │ └── day=30 │ └── month=12 │ ├── day=01 │ ├
us-east-1
)中有一个bucket(logs
),其中包含按应用程序和日期划分的日志,这并不奇怪:
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
我想列出特定日期、月份、年份的所有对象(日志)
如何使用?新的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());
}
}
新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());
}
}