AWS S3-Object没有属性SERVER_SIDE_ENCRYPTION';
问题描述
有人能解释一下这两个电话的区别吗?第一个给出了正确的server_side_ENCRYPTION,第二个给出了错误。其他属性提供相同的值-
#!/usr/bin/python
import boto3
import botocore
s3 = boto3.resource('s3')
s3_client = boto3.client('s3')
object = s3.Object('abcdefhkjl9999','error.html')
print(object.bucket_name)
print(object.key)
print(object.last_modified)
print(object.storage_class)
print(object.server_side_encryption)
bucket = s3.Bucket('abcdefhkjl9999')
for object in bucket.objects.all():
print("#############################")
print(object.bucket_name)
print(object.key)
print(object.last_modified)
print(object.storage_class)
print(object.server_side_encryption)
The output is -
abcdefhkjl9999
error.html
2017-08-20 22:58:02+00:00
REDUCED_REDUNDANCY
aws:kms
#############################
abcdefhkjl9999
error.html
2017-08-20 22:58:02+00:00
REDUCED_REDUNDANCY
Traceback (most recent call last):
File "./test3.py", line 26, in <module>
print(object.server_side_encryption)
AttributeError: 's3.ObjectSummary' object has no attribute 'server_side_encryption'
解决方案
正如您收到的错误所述,您尝试从中获取server_side_encryption
属性的对象实际上不是s3.Object
类型,而是s3.ObjectSummary
类型
幸运的是,您可以将对象作为子资源获取specified here
inner = outer.Object()
然后查询属性
print(inner.server_side_encryption)
相关文章