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

AWS CLI S3 sync命令下载PNG图片出现损坏问题排查求助

核心原因

90%以上的概率是S3对象的Content-Encoding元数据配置错误,AWS CLI默认会自动根据该头对内容做解码处理,未压缩的图片被错误解码后就会出现体积变大、文件损坏的问题。

可行解决方案

  • 临时解决单次同步问题:在s3 sync命令后增加--no-auto-decode参数,禁用CLI的自动解码逻辑,直接拉取S3上的原始文件字节:
aws s3 sync s3://$AWS_STORAGE_BUCKET_NAME/media/filer_public/4e/79/4e7929c1-e7fa-4f39-80c8-0c958efac0d0/ . --no-auto-decode

执行后对比文件大小和MD5值,确认文件正常。

  • 验证根因:执行以下命令查看对应S3对象的元数据,确认是否存在错误的Content-Encoding配置:
aws s3api head-object --bucket $AWS_STORAGE_BUCKET_NAME --key media/filer_public/4e/79/4e7929c1-e7fa-4f39-80c8-0c958efac0d0/giraffe-cover-image_7.png

如果返回结果中存在ContentEncoding字段(如值为gzip、deflate等),且确认上传时并未对文件做对应压缩,即可确认是元数据配置错误。

  • 永久修复所有客户端下载问题:修正S3对象的错误元数据,清空错误的Content-Encoding配置:
aws s3api copy-object --bucket $AWS_STORAGE_BUCKET_NAME \
  --key media/filer_public/4e/79/4e7929c1-e7fa-4f39-80c8-0c958efac0d0/giraffe-cover-image_7.png \
  --copy-source $AWS_STORAGE_BUCKET_NAME/media/filer_public/4e/79/4e7929c1-e7fa-4f39-80c8-0c958efac0d0/giraffe-cover-image_7.png \
  --content-encoding '' \
  --metadata-directive REPLACE

如果有大量同类文件,可以批量遍历执行上述修改操作。

  • 额外排查项:如果上述操作无效,可尝试升级AWS CLI到最新版本,旧版本存在过自动解码逻辑异常的已知bug。Windows用户可额外在命令中增加--binary参数,避免换行符自动转换导致的文件损坏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:54:07