Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.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
替换s3 python boto3中的文件_Python_Amazon Web Services_Amazon S3_Aws Lambda_Boto3 - Fatal编程技术网

替换s3 python boto3中的文件

替换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',

如果我们必须使用python(lambda)将指定s3文件夹路径中的一个
现有文件
完全替换为另一个
(具有不同的文件名)

在任何时刻,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%确定密钥相同?它对新对象有效吗?