【问题标题】:aws s3 boto3 copy()aws s3 boto3 复制()
【发布时间】:2020-08-24 20:29:22
【问题描述】:

我正在尝试执行以下程序并遇到此问题

botocore.exceptions.ClientError:调用时发生错误(404) HeadObject 操作:未找到

import boto3
s3 = boto3.resource('s3')
copy_source = {
    'Bucket': 'forw',
    'Key': 'test'
}
s3.meta.client.copy(copy_source,Bucket='copybucket0526',Key='tet')

【问题讨论】:

  • 您需要提供更多信息。你想达到什么目标?你到底在问什么?
  • 您是否同时创建了存储桶和密钥?
  • 您是否有一个名为 forw 的存储桶,其中包含一个名为 test 的对象?
  • 它正在工作,谢谢
  • 典型的boto3新手错误声明boto3 s3服务资源然后使用低级服务客户端s3.meta.client.copy。 (或者它来自一个糟糕的 AWS boto3 文档示例)

标签: python amazon-s3 boto3


【解决方案1】:

试试这个代码,它会工作

import boto3
s3 = boto3.resource('s3')
copy_source = {
    'Bucket': 'source_bucket',
    'Key': 'dirname/subdirname/filename.gz'
}
s3.meta.client.copy(copy_source,Bucket='destination_bucket',Key='somedirname/new_or_same_filename.gz')

这工作我猜你提供路径是错误的,这意味着你需要提供文件完整路径

【讨论】:

    【解决方案2】:

    一般来说,HeadObject 上的 404 代码意味着资源不存在。

    【讨论】:

      【解决方案3】:

      在 key 的位置确保您正在处理要从源存储桶复制的文件的父文件夹或子目录(如果有)。

      copy_source = {
          'Bucket': 'forw',
          'Key': 'top_directory/sub_directory/file.jpg'
      }
      

      【讨论】:

        猜你喜欢
        • 2020-07-04
        • 1970-01-01
        • 1970-01-01
        • 2020-07-07
        • 1970-01-01
        • 2019-07-16
        • 2016-12-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多