如何通过“复制”到同一键来更改S3对象的设置?

时间:2018-07-26 18:21:00

标签: amazon-web-services amazon-s3 boto3

我想更改S3对象的server_side_encryption settings(最好使用boto3)。

据我了解,我实际上不能像这样更改S3对象设置,而是需要使用新设置“复制”该对象。首先,这是真的吗?如果是这样,是否可以将S3对象复制到同一键(一次操作),从而用具有新设置的新文件覆盖原始文件?

2 个答案:

答案 0 :(得分:1)

AWS S3对象一旦创建就无法修改。您不能就地写信,追加等。 AWS确实支持通过在更改时就地复制S3对象来更改它。加密属于该类别。

这是John Rotenstein的一个python示例,说明如何加密S3中已经存在的文件。在John的答案中投票,这对您有帮助。

Encypt existing files

约翰·罗滕斯坦的例子:

import boto

conn = boto.connect_s3('REGION')
bucket = conn.get_bucket('BUCKET')

for k in bucket.list():
  bucket.copy_key(new_key_name=k.key, src_bucket_name=bucket.name, src_key_name=k.key, encrypt_key=True)

答案 1 :(得分:1)

是的,您可以将文件复制到其自身以更改服务器端加密设置。

以下是使用AWS Command-Line Interface (CLI)的示例:

ser = serial.Serial('/dev/ttyACM0', 115200)
inputstring = ser.readline()