【问题标题】:Moving of files from s3 bucket-A to s3 bucket -B with specific keys using python [duplicate]使用python使用特定键将文件从s3存储桶-A移动到s3存储桶-B [重复]
【发布时间】:2020-10-05 18:53:17
【问题描述】:

Bucket-1

  • 名称:音频
  • 密钥:2020/06/10/10/

2 号桶

  • 名称:开发人员
  • 键:源元数据

必须使用 python 将文件从音频存储桶传输到具有特定键选项的开发存储桶

【问题讨论】:

  • 代码:import boto3 s3 = boto3.resource('s3') copy_source = { 'Bucket': 'audio', 'Key': '2020/06/10/10/' } bucket = s3.Bucket('dev') bucket.copy(copy_source, 'source_metadata') ERROR: botocore.exceptions.ClientError: An error occurred (404) when calling HeadObject operation: Not Found
  • 您似乎想要复制多个对象。这不可能。每个 API 调用只能复制一个对象。因此,您需要列出源目录的内容,然后遍历每个对象并发出 copy() 命令。
  • @JohnRotenstein 你有任何示例代码吗
  • 是的。请参阅本页顶部的重复问题的链接。

标签: python-3.x amazon-s3


【解决方案1】:

如果你用的是新版本的boto,那就很简单了

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

仅供参考:文档:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.copy

【讨论】:

  • 尝试了这段代码,响应为 NULL 并且在目标存储桶中看不到任何文件
  • 你的 key 值是否正确?
  • copy_source 中的目标存储桶详细信息和 otherbucket & otherkey 中的源详细信息对吗?
猜你喜欢
  • 2020-05-29
  • 2017-11-23
  • 1970-01-01
  • 2018-06-02
  • 2019-08-07
  • 1970-01-01
  • 2020-03-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多