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

Postman调用S3 CopyObject API后目标文件大小为0的技术问询

解决S3 CopyObject API返回200但目标文件为空的问题

核心排查与修复步骤

  • 确认请求方法为PUT
    S3的CopyObject操作必须使用PUT请求,若误用GET方法,S3会返回200状态码,但不会执行复制逻辑,仅创建空目标对象。直接在Postman中切换请求方法为PUT即可。

  • 修正X-Amz-Copy-Source参数格式
    该参数有严格格式要求:

    1. 必须以/<源桶名>/<源对象完整路径>格式填写,哪怕源和目标在同一桶,也不能省略桶名。比如源对象在mybucket桶的source-folder目录下,参数值应为/mybucket/source-folder/source-object.jpg。
    2. 必须做URL编码:若源路径含空格、特殊字符(如&、%),要确保参数被正确编码。可手动用URL编码工具处理后填入,或在Postman参数编辑框右侧齿轮图标中勾选"Encode URI Component"开启自动编码。
  • 移除手动设置的content-length
    CopyObject请求本身无请求体,Postman会自动计算并设置正确的content-length。手动强制设为0会干扰S3请求解析或签名计算,直接删除请求头中的content-length设置即可。

  • 校验Postman的AWS签名授权
    确保AWS Signature配置无误:

    1. Access Key ID和Secret Access Key需拥有源对象的s3:GetObject权限和目标对象的s3:PutObject权限。
    2. Region设置必须与桶所在区域完全一致,不能填错。
    3. 确认Postman生成签名时包含X-Amz-Copy-Source查询参数:若该参数未纳入签名计算,S3会忽略复制指令,仅创建空对象。可通过Postman的"Preview Request"查看签名参数是否包含此字段。

修正后的示例请求URL(已编码)

https://mybucket.s3.us-east-1.amazonaws.com/destination-object.jpg?X-Amz-Copy-Source=%2Fmybucket%2Fsource-folder%2Fsource-object.jpg

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 14:28:23