Как прочитать дату последнего изменения в файле на S3

я хочу прочитать дату последнего изменения или создания в файле 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 ?


person Thilina Dinith Fonseka    schedule 30.01.2019    source источник


Ответы (1)


Для этого вам нужно использовать S3ObjectSummary. Здесь это документация для него. Ниже приведен пример кода (из здесь):

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);

вот javadoc для ListObjectsV2Request.

person Darshan Mehta    schedule 30.01.2019
comment
Спасибо за ответ. - person Thilina Dinith Fonseka; 30.01.2019
comment
проблема в том, что он запускает все файлы в корзине (все папки). у меня есть файл с именем abc в каталоге теста, мне нужно проверить только этот файл. как мне это сделать ? потому что это дает test/abc.json test2/abc.json - person Thilina Dinith Fonseka; 30.01.2019