【问题标题】:How can I move a sub-folder to another main folder within same s3 bucket boto3?如何将子文件夹移动到同一个 s3 存储桶 boto3 中的另一个主文件夹?
【发布时间】:2021-12-23 19:59:48
【问题描述】:
dst= s3.get_object(Bucket='bucket_name', )   

copy_source = {
    'Bucket': 'bucket_name',
    'Key': 'folder_path'
}   

dst.copy(copy_source,'Key': 'target_folder_path')

【问题讨论】:

  • S3 中没有文件夹之类的东西,只有带有键的对象,有些键可能有重叠的前缀。是否要将给定前缀下的所有文件移动到不同的前缀? S3一般没有“移动”,总是需要“复制”再“删除”。
  • @luk2302 是的,我想移动所有文件,但在同一个存储桶中。你能帮帮我吗?

标签: python amazon-web-services amazon-s3 boto3


【解决方案1】:

您需要:

  • 循环遍历要“移动”的对象列表(您可以使用 s3_resource.Bucket('bucket-name').objects.filter(Prefix='path/') 指定前缀)
  • 对于您希望“移动”的每个对象:
  • 使用copy() 将对象复制到所需路径
  • 然后delete()源对象

【讨论】:

  • 我在客户端的低级别使用它
  • 使用 S3 客户端也是如此。您可以使用list_objects_v2() 获取对象列表,然后使用copy_object()delete_object()
  • 感谢约翰·罗滕斯坦的帮助。我已经按照你的解释解决了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-10
  • 1970-01-01
  • 2020-06-09
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
相关资源
最近更新 更多