Как получить всю дату last_modifed определенного объекта внутри корзины s3? - PullRequest
0 голосов
/ 18 февраля 2019

Я устанавливаю код, который помогает мне получить список сегментов S3, и я выбираю список объектов на основе общих префиксов.Поскольку в корзине S3 нет огромных объектов, но я хочу получить дату последнего изменения конкретного объекта на основе общих префиксов, это будет идеальным

. Например: имя корзины S3

внутри этого блока есть 2 объекта

  1. code-java
  2. 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
    }

Я ожидаю, что результат будетчастный на основе объекта

...