AWS cli 在复制大文件时抛出错误

AWS cli throws error when copying large files

我正在尝试使用 aws cli 工具将对象从 s3 存储桶复制到另一个存储桶。

它适用于小对象,但在大文件桶上,一旦开始复制,我就会收到以下错误之一:

copy failed: s3://bucket/file.ogv to s3://bucket-tmp/file.ogv ('Connection aborted.', OSError(0, 'Error'))

copy failed: s3://bucket/file.ogv to s3://bucket-tmp/file.ogv An error occurred (NoSuchKey) when calling the UploadPartCopy operation: Unknown

如果我包含 --no-guess-mime-type 我会得到

fatal error: ('Connection aborted.', OSError(0, 'Error'))

我尝试了 --debug,但我真的不太了解调试输出,但我可以在日志中再次看到 OSError(0, 'Error')。

有人见过这样的东西吗?在另一个答案 (this one) 中,人们谈到了另一个工具 s3cmd,但我无法让它工作。

我正在尝试使用路径样式 url 和 https 端点访问企业服务器上的 ceph。

我的命令:

aws --endpoint-url https://myendpoint.url s3 cp s3://mybucket s3://mybucket-tmp --recursive

此外,当我尝试配置 s3cmd 时,我得到一个难看的 python 调试输出,中间有 OSError: [Errno 0] Error

我发现如果我使用 s3api 命令而不是 s3 命​​令,它就可以工作。工作指令格式:

aws --endpoint-url <my-endpoint-url> s3api copy-object --copy-source my-source-bucket/whatever/path/file.txt --key whatever/path/file.txt --bucket my-destination-bucket

一次只复制一个文件。您可以使用 s3 命​​令 ls 或 s3api 命令 list-objects

获取存储桶中的对象列表