Почему атрибут класса хранилища отсутствует для объекта boto3 s3? - PullRequest
1 голос
/ 29 мая 2019

При запуске извлечения класса хранения

import boto3

s3 = boto3.resource('s3')
key = s3.Object('bucket_name','key')
print key.storage_class

возвращается None

Ответы [ 2 ]

1 голос
/ 31 мая 2019

По документации AWS: S3 возвращает заголовок x-amz-storage-class для всех объектов, кроме стандартного класса хранения. https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html

Я использую следующее для получения переменной класса хранилища:

import boto3

session = boto3.session.Session(profile_name='dev')
s3_resource = session.resource('s3', region_name=region)                 
obj_meta = s3_resource.Object(bucket, key_object)

obj_storage_class = 'STANDARD' if obj_meta.storage_class is None else str(obj_meta.storage_class)
1 голос
/ 30 мая 2019

Мои эксперименты показывают, что Standard класс хранения возвращает значение None (как это было для вас).

Однако мне удалось получить действительные значения для других классов хранения, таких как STANDARD_IAи GLACIER.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...