Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.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
Python 在目标存储桶具有目录的s3存储桶之间复制文件_Python_Amazon Web Services_Amazon S3_Aws Sdk - Fatal编程技术网

Python 在目标存储桶具有目录的s3存储桶之间复制文件

Python 在目标存储桶具有目录的s3存储桶之间复制文件,python,amazon-web-services,amazon-s3,aws-sdk,Python,Amazon Web Services,Amazon S3,Aws Sdk,我有两个s3桶。我想把一个文件从一个桶复制到另一个桶。在Bucket to中,我在这里有一个文件夹/副本。当我尝试使用Boto直接复制存储桶之间的内容时,它起作用了。但是,当我想将其复制到目标中的目录时,我会得到ParameterValidationError。以下是我试图执行的代码: def copyToBucketfromBucket,toBucket,文件名: copySource={ “Bucket”:readBucketName, “键”:文件名 } uploadBucket=s3.B

我有两个s3桶。我想把一个文件从一个桶复制到另一个桶。在Bucket to中,我在这里有一个文件夹/副本。当我尝试使用Boto直接复制存储桶之间的内容时,它起作用了。但是,当我想将其复制到目标中的目录时,我会得到ParameterValidationError。以下是我试图执行的代码:

def copyToBucketfromBucket,toBucket,文件名: copySource={ “Bucket”:readBucketName, “键”:文件名 } uploadBucket=s3.BucketuploadBucketName uploadBucket.CopySource,文件名
我研究了s3元客户端,它也提供了相同的功能。我不确定这个操作是否可以在一个步骤中完成。如果有,那就太好了。如果不是,我是否应该先将文件复制到目标存储桶,然后将文件移动到copy_here文件夹?目前,我的uploadBucketName已设置为/copy_。亚马逊S3中不存在文件夹和目录。相反,对象的文件名键由完整路径和文件名组成。好的,S3管理控制台使它看起来有文件夹,但它们实际上并不存在

因此,这将根据您的需要复制一个文件:

进口boto3 copySource={ 'Bucket':'source Bucket name', “Key”:“foo.txt” } uploadBucket=s3.Bucket'destination-Bucket-name' uploadBucket.CopySource,'copy_here/foo.txt' 请注意,目标键由路径+文件名组成。bucket名称必须仅由bucket名称本身组成