为什么 boto3 s3 对象缺少存储 class 属性?

Why storage class attribute is missing for boto3 s3 object?

当运行检索存储时Class

import boto3

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

它returnsNone

我的实验表明 Standard 存储 class returns 的价值 None(就像你所做的那样)。

但是,我设法获得了其他存储 class 的有效值,例如 STANDARD_IAGLACIER

根据 AWS 文档: S3 returns x-amz-storage-class header 所有 objects 除了标准存储 class。 https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html

我正在使用以下方法获取存储 class 变量:

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)