替换s3 python boto3中的文件
如果我们必须使用python(lambda)将指定s3文件夹路径中的一个替换s3 python boto3中的文件,python,amazon-web-services,amazon-s3,aws-lambda,boto3,Python,Amazon Web Services,Amazon S3,Aws Lambda,Boto3,如果我们必须使用python(lambda)将指定s3文件夹路径中的一个现有文件完全替换为另一个(具有不同的文件名) 在任何时刻,s3中的特定文件夹路径都只有一个文件,在运行python代码时,该文件将被另一个文件完全替换 哪种boto功能可用于上述操作。谢谢 要做到这一点,只需调用函数,它实际上是函数的包装器 函数调用如下所示 import boto3 s3 = boto3.resource('s3') s3.meta.client.upload_file('/tmp/hello.txt',
现有文件
完全替换为另一个(具有不同的文件名)
在任何时刻,s3中的特定文件夹路径都只有一个文件,在运行python代码时,该文件将被另一个文件完全替换
哪种boto功能可用于上述操作。谢谢 要做到这一点,只需调用函数,它实际上是函数的包装器 函数调用如下所示
import boto3
s3 = boto3.resource('s3')
s3.meta.client.upload_file('/tmp/hello.txt', 'mybucket', 'replace/this/file.txt')
只要您没有启用对象版本控制,它就会替换以前为该键存在的对象。您所说的“用其他文件名替换文件”是什么意思?如果它有不同的文件名,那么它是不同的文件,那么“替换”是什么意思?上载新文件时是否只想删除现有文件?在这种情况下,您可以使用
delete\u object()
和upload\u file()
。您描述的不是更新文件。如果上载的文件具有相同的名称,则会“更新”文件。您所描述的是一个完全不同的文件的上传(因为它有不同的名称),所以没有任何内容被“更新”。这就像要求将福特汽车“更新”为丰田汽车,而交易实际上涉及出售一辆汽车和购买另一辆汽车。感谢您的回答@Chris Williams,对象版本控制未启用,但是,当要上载的新文件名不同时,一个简单的上载文件似乎不能替换以前的对象。您是否100%确定密钥相同?它对新对象有效吗?