如何在s3存储桶中获取特定对象的所有last_modifed日期?

时间:2019-02-18 08:31:18

标签: amazon-web-services amazon-s3 aws-sdk boto3 aws-java-sdk

我正在设置一个代码,该代码可以帮助我获取S3存储桶的列表,并且可以基于通用前缀来获取对象列表。由于S3存储桶中没有大量对象,但是我想根据通用前缀获取特定对象的最后修改日期将是理想的

例如:S3存储桶名称为

在该存储桶中有2个对象

  1. 代码Java
  2. 代码反应

在这2个对象中,存在更多文件列表,但是我只想获取这2个对象的last_modified日期

我正在使用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 nd编写下面的代码,但是结果相似,我正在获取存储桶中所有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
    }

我希望输出基于对象是特定的

0 个答案:

没有答案