Я устанавливаю код, который помогает мне получить список сегментов S3, и я выбираю список объектов на основе общих префиксов.Поскольку в корзине S3 нет огромных объектов, но я хочу получить дату последнего изменения конкретного объекта на основе общих префиксов, это будет идеальным
. Например: имя корзины S3
внутри этого блока есть 2 объекта
- code-java
- code-response
Внутри этих двух объектов есть список других файлов,но я хочу получить дату last_modified только для этих 2 объектов
Я использую python / boto, чтобы использовать это, но я получаю список всех файлов с датой последнего изменения
import boto
s3conn = boto.connect_s3()
bucket = "bucket-for-code"
members = s3conn.get_bucket(bucket)
items = members.list()
for item in items:
res = s3conn.make_request("HEAD",bucket,item.name)
h = res.getheader('Last-Modified','unknown')
print item.name + " - " + h
Я также пытался с java sdk, и код для этого ниже, но результат похож, я получаю список всех объектов s3 внутри корзины:
ObjectListing objects = conn.listObjects(bucket.getName());
do {
for (S3ObjectSummary objectSummary : objects.getObjectSummaries()) {
System.out.println(objectSummary.getKey() + "\t" +
objectSummary.getSize() + "\t" +
StringUtils.fromDate(objectSummary.getLastModified()));
}
objects = conn.listNextBatchOfObjects(objects);
} while (objects.isTruncated());
ListObjectsV2Request listObjectsV2Request = new ListObjectsV2Request()
.withBucketName("my-bucket")
.withMaxKeys(1000);
ListObjectsV2Result result =
s3client.listObjectsV2(listObjectsV2Request);
for (S3ObjectSummary objectSummary : result.getObjectSummaries()) {
// objectSummary.getLastModified() as java.util.Date
}
Я ожидаю, что результат будетчастный на основе объекта