получить метаданные файла из S3 используя Python Boto - PullRequest
0 голосов
/ 10 мая 2018

У меня есть несколько двоичных файлов в AWS S3, мне нужно получить file metadata как created time, modified time и время доступа с использованием Python Boto API?

Мы пытались скопировать файлы в экземпляр EC2, оттуда мы использовали метод os module stat, чтобы узнать время. Я надеюсь, что когда мы копируем файлы в инстанс EC2, эти данные меняются.

Пример кода, который я пробовал:

stat = os.stat(inputFile)
createdTime = datetime.fromtimestamp(stat[9]).strftime("%A, %B %d, %Y %I:%M:%S")

Как напрямую получить эти данные из S3?

Ответы [ 2 ]

0 голосов
/ 03 марта 2019

Boto3 имеет функцию S3.Client.head_object :

Операция HEAD извлекает метаданные из объекта, не возвращая сам объект. Эта операция полезна, если вам интересно в метаданных объекта.

Пример кода для просмотра файлов в корзине и запроса метаданных:

#! /usr/bin/python3

import boto3

paginator = s3client.get_paginator('list_objects_v2')
page_iterator = paginator.paginate(Bucket='MyBucketName')
for bucket in page_iterator:
    for file in bucket['Contents']:
        print(file['Key'])
        try:
            metadata = s3client.head_object(Bucket='MyBucketName', Key=file['Key'])
            print(metadata)
        except:
            print("Failed {}".format(file['Key']))
0 голосов
/ 10 мая 2018

используйте boto3 вместо boto. Вы можете посмотреть на https://boto3.readthedocs.io/en/latest/reference/services/s3.html что-нибудь о apis boto3 s3. не так много доступных фильтров, проверьте, есть ли там то, что вам нужно. Отметьте это, чтобы начать с https://boto3.readthedocs.io/en/latest/reference/services/s3.html#S3.Client.list_objects_v2

...