AWS S3-Object没有属性SERVER_SIDE_ENCRYPTION' [英] aws s3 - object has no attribute 'server_side_encryption'

查看:29
本文介绍了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)

这篇关于AWS S3-Object没有属性SERVER_SIDE_ENCRYPTION&#39;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆