这是因为在默认情况下,Amazon S3应用程序使用追加模式传输数据。如果需要覆盖数据,请更改配置以使用“overwrite”模式。以下是一个将Amazon S3上的文件覆盖的Python示例:
import boto3
s3 = boto3.client('s3')
bucket_name = 'my-bucket'
object_name = 'my-object'
file_path = '/path/to/local/file'
s3.upload_file(file_path, bucket_name, object_name, ExtraArgs={'Metadata': {'mode': 'overwrite'}})
在上面的代码中,将“mode”元数据设置为“overwrite”将覆盖存储桶中具有相同名称的任何文件。如果要追加而不是覆盖,请将“mode”设置为“append”。
s3.upload_file(file_path, bucket_name, object_name, ExtraArgs={'Metadata': {'mode': 'append'}})