簡體   English   中英

將文件從一個存儲桶移動到另一個存儲桶中的文件夾

[英]Move files from one bucket to a folder inside another bucket

我是 boto3 的新手,能夠將文件從一個存儲桶移動到另一個存儲桶,但是,我需要將文件移動到另一個存儲桶中的文件夾中

Amazon S3 中沒有“移動”命令。 相反,您需要:

  • 使用copy_object()將對象復制到一個新的Key (包括對象的完整路徑)
  • 然后delete_object()在舊對象上

副本的目的地可以是同一個桶,也可以是不同的桶。

文件夾實際上並不存在,因此您可以將對象復制到任何路徑,而無需先創建文件夾。

如果您不需要使用 boto3,一個更簡單的方法是使用AWS 命令​​行界面 (CLI)

aws s3 mv s3://bucket1/foo/object.txt s3://bucket2/bar/object.txt

您甚至可以移動整個“文件夾”:

aws s3 mv s3://bucket1/foo s3://bucket2/ --recursive

使用 boto3,這非常簡單。 文檔中所述:

import boto3
s3 = boto3.resource('s3')
copy_source = {
    'Bucket': 'mybucket',
    'Key': 'mykey'
}
s3.meta.client.copy(copy_source, 'otherbucket', 'otherkey')

將文件從一個存儲桶復制到另一個存儲桶后,您可以將其刪除:

obj = s3.Object('bucket_name', 'key')
obj.delete()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM