1

i want to read last modified or created date in a s3 file. i have seen the coding to list all files but i wanted to find a specific file's modified date.

i used this coding to retrive the s3 file

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

InputStream profileData = s3ProfileObject.getObjectContent();

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

is it possible to read it using s3ProfileObject ?

1 Answers1

1

You need to use S3ObjectSummary for that. Here is the documentation for it. Below is the sample code (from 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());
}

From S3ObjectSummary, you can make another request and get S3Object.

If you want to include a specific file or files with specific prefix then you can use `` object with withPrefix method along with the request, e.g.:

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

ListObjectsV2Result result = s3client.listObjectsV2(listObjectsV2Request);

Here's the javadoc for ListObjectsV2Request.

Darshan Mehta
  • 30,102
  • 11
  • 68
  • 102
  • the problem is it run all the files in the bucket ( all the folders ). i have a file called abc in the directory of test i need to check only that file. how can i do it ? cause this gives test/abc.json test2/abc.json – Thilina Dinith Fonseka Jan 30 '19 at 09:24