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

AWS SDK for Golang GetObjectRequest:超200字符文件名被截断,咨询长度限制

AWS SDK for Go GetObjectRequest 长文件名截断问题解答

文件名长度限制说明

HTTP标准本身并未强制限制Content-Disposition头中filename字段的长度,但AWS S3在预签名URL场景下对自定义响应头存在明确的长度限制:

  • 当通过GetObjectRequest设置ResponseContentDisposition并生成预签名URL时,该头的总长度(包括filename字段及编码内容)会被S3限制在阈值范围内,实际场景中超过200字符的原文件名经UTF-8编码后,极易触发截断逻辑。
  • 直接通过SDK调用GetObject本地下载时,S3会完整返回响应头,服务端通过SDK解析后可获取完整文件名,因此不会出现截断情况。

预签名URL截断的核心原因

预签名URL的生成过程会将自定义响应头(如ResponseContentDisposition)纳入签名计算,S3对参与签名的请求参数总长度有严格限制。同时,filename通常会以filename*=UTF-8''<encoded-name>的格式传输,编码后的长度远大于原字符长度,这会导致原本200字符的文件名编码后超出S3的允许范围,最终被截断。

可行解决方案

  • 将完整文件名存储在S3对象的自定义元数据中(如x-amz-meta-original-filename),客户端通过预签名URL下载后,从响应头的元数据字段提取完整文件名进行保存。
  • 对长文件名进行短化处理(如哈希、截断+后缀标识),将短文件名放入ResponseContentDisposition,同时在元数据中保留原文件名,兼顾预签名URL的可用性和原文件名的完整性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 10:10:15