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

使用JMeter通过预签名URL向Amazon S3上传Zip文件遇连接重置问题

解决JMeter中S3预签名URL上传Zip文件的两个问题

一、修复Content-Type被自动修改的问题

S3预签名URL生成时会绑定指定的Content-Type,如果实际请求的类型不匹配,会直接触发服务器拒绝,这也可能是连接重置错误的根源。按以下步骤确保Content-Type正确:

  • 强制设置请求头:在HTTP请求的「Headers Manager」中添加头字段:
    Content-Type: application/x-zip-compressed
    确保这个头没有被其他配置覆盖(比如不要在Parameters里重复设置Content-Type参数)。
  • 禁用自动Content-Type推断:
    1. 如果使用PUT请求(S3预签名上传通常用PUT),不要勾选HTTP请求中的「Use multipart/form-data for POST」选项——表单上传会自动添加边界和Content-Type,干扰自定义设置。
    2. 修改JMeter配置文件jmeter.properties,添加或修改:
      httpclient.parameter.file_upload_policy=RFC1867
      
      重启JMeter后生效,这会禁用基于文件扩展名的自动Content-Type设置。
  • 确认请求方法:确保HTTP请求的方法是PUT,而非POST——S3预签名PUT URL不支持POST表单上传方式。

二、解决Connection reset by peer错误

这个错误通常是服务器主动断开连接,结合Content-Type问题,优先排查以下点:

  • 验证预签名URL的一致性:生成预签名URL时必须指定Content-Type: application/x-zip-compressed,实际请求的头要完全匹配,否则S3会拒绝并断开连接。
  • 调整超时设置:在HTTP请求的「Advanced」标签中,增大「Connection Timeout」和「Response Timeout」的值,比如设为60000(60秒),避免大文件上传时超时被断开。
  • 切换HTTP客户端实现:在HTTP请求的「Implementation」下拉框中,尝试切换为「Java」或「HC4」客户端,不同的客户端实现对请求头的处理和网络兼容性不同。
  • 测试预签名URL有效性:用curl命令直接测试,排除JMeter配置问题:
    curl -X PUT -H "Content-Type: application/x-zip-compressed" --data-binary @./your-file.zip "your-presigned-s3-url"
    
    如果curl也报错,说明预签名URL本身存在问题(比如Expires过期、Signature错误、权限不足),需要重新生成正确的预签名URL。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:42:15