如何在S3上的文件中读取上次修改日期

时间:2019-01-30 09:02:53

标签: java amazon-s3 aws-lambda metadata datecreated

我想在s3文件中读取上次修改或创建的日期。我已经看到列出所有文件的编码,但是我想找到特定文件的修改日期。

我使用此编码来检索s3文件

S3Object s3ProfileObject = s3Client.getObject(new GetObjectRequest(srcBucket, fullProfilePath));

InputStream profileData = s3ProfileObject.getObjectContent();

SONObject rawProfileObject = (JSONObject)jsonParser.parse( new InputStreamReader(profileData, "UTF-8"));

是否可以使用s3ProfileObject进行阅读?

1 个答案:

答案 0 :(得分:1)

您需要为此使用S3ObjectSummaryHere是它的文档。以下是示例代码(来自here):

final AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();
ListObjectsV2Result result = s3.listObjectsV2(bucket_name);
List<S3ObjectSummary> objects = result.getObjectSummaries();
for (S3ObjectSummary os: objects) {
    System.out.println("* " + os.getKey());
}

您可以从S3ObjectSummary发出另一个请求并获得S3Object

如果您要包含一个或多个特定文件,则可以在请求中使用带有withPrefix方法的对象,例如:

ListObjectsV2Request listObjectsV2Request = new ListObjectsV2Request()
    .withBucketName("test-bucket")
    .withPrefix("file-prefix");

ListObjectsV2Result结果= s3client.listObjectsV2(listObjectsV2Request);

Here'sListObjectsV2Request的Javadoc。