You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

boto3调用S3的copy_object方法报仅接受关键字参数错误如何解决

报错原因

boto3的S3客户端copy_object()方法强制要求所有参数必须以关键字参数形式传入,不支持按参数位置顺序传递位置参数。你当前代码里按位置依次传入Bucket、Key、CopySource三个参数,不符合方法调用规范,因此触发报错。

修复代码

将调用copy_object()的行修改为显式指定参数名的写法即可:

CopySource = {
'Bucket': file.bucket_name, 
'Key': file.key
}
Bucket = project_bucket
Key = file.key
# 显式指定每个参数的参数名,使用关键字参数传参
s3_client.copy_object(
    Bucket=Bucket,
    Key=Key,
    CopySource=CopySource
)
批量复制目录保持结构的补充说明

如果你需要批量复制源桶指定目录下的所有对象,只需要遍历源桶对应前缀(Prefix)下的所有对象,直接将每个对象的原Key作为目标桶的Key传入即可自动保持和源端完全一致的目录结构。

内容的提问来源于stack exchange,提问作者milind potdar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 00:48:06