Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 如何检查S3对象是否使用boto加密?_Amazon S3_Boto - Fatal编程技术网

Amazon s3 如何检查S3对象是否使用boto加密?

Amazon s3 如何检查S3对象是否使用boto加密?,amazon-s3,boto,Amazon S3,Boto,我正在编写一个python脚本,以确定S3对象是否加密。我尝试使用以下代码,但key.encrypted始终返回None,即使我可以看到S3上的对象已加密 keys = bucket.list() for k in keys: print k.name, k.size, k.last_modified, k.encrypted , "\n" k、 encrypted始终不返回任何值。不管它值多少,您都可以使用boto3(它可以与boto并排使用) 有关可用密钥属性的列表,请参见boto

我正在编写一个python脚本,以确定S3对象是否加密。我尝试使用以下代码,但key.encrypted始终返回None,即使我可以看到S3上的对象已加密

keys = bucket.list()
for k in keys:
    print k.name, k.size, k.last_modified, k.encrypted , "\n"

k、 encrypted始终不返回任何值。

不管它值多少,您都可以使用
boto3
(它可以与
boto
并排使用)


有关可用密钥属性的列表,请参见
boto3

您还可以使用
head\u object
调用检查特定对象的加密状态。下面是Python/boto中的一个示例:

#!/usr/bin/env python
import boto3

s3_client = boto3.client('s3')
head = s3_client.head_object(
    Bucket="<S3 bucket name>",
    Key="<S3 object key>"
)
if 'ServerSideEncryption' in head:
    print head['ServerSideEncryption']
#/usr/bin/env python
进口boto3
s3\u client=boto3.client('s3'))
head=s3\u client.head\u object(
Bucket=“”,
Key=“”
)
如果头中有“ServerSideEncryption”:
打印头['ServerSideEncryption']

请参阅:

展开@mfisherca的响应,您可以使用AWS CLI执行此操作:

aws s3api head-object --bucket <bucket> --key <key>

# or query the value directly

aws s3api head-object --bucket <bucket> --key <key> \
  --query ServerSideEncryption --output text
aws s3api头对象--bucket--key #或者直接查询值 aws s3api头对象--桶--键\ --查询服务器端加密--输出文本
我确认这些结果。奇怪!我想知道
boto3
是否解决了这个问题?针对
boto
提出了一个问题:如何获取所有对象的状态?不是特定对象,我想知道特定存储桶中所有对象的加密状态。@manda1238 David Morales的回答循环了所有对象并返回每个对象的加密状态。如果这是您所希望的,那么您无法在一个API调用中获得所有对象的状态。
aws s3api head-object --bucket <bucket> --key <key>

# or query the value directly

aws s3api head-object --bucket <bucket> --key <key> \
  --query ServerSideEncryption --output text