查看: 10|回覆: 0

.NET 记录Amazon上传S3异常问题

[複製鏈接]

3

主題

1

回帖

0

積分

热心网友

金币
1
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2010-8-6
發表於 2025-10-11 18:37:00 | 顯示全部樓層 |閲讀模式

上传文件至S3,提示AmazonS3Exception异常:The provided 'x-amz-content-sha256' header does not match what was computed.

image

确认了下,代码逻辑已经很久未动了。

没得办法,只能动用终极工具-二分查找,分段revert之前改动的代码,调试验证S3模块

回到半个月前的改动,发现S3上传逻辑是正常的。改动就是,升级了S3的亚马逊AWSSDK Nuget包。。。

image

使用Fiddler Http调试工具,看看request请求区别

image

x-amz-content-sha256这个参数,旧版本是STREAMING-AWS4-HMAC-SHA256-PAYLOAD,新版本增加了TRAILER后缀

俩者均是用于设置文件分块上传,区别在于是否支持在请求末尾动态添加元数据(Trailer)

STREAMING-AWS4-HMAC-SHA256-PAYLOAD-TRAILER在传输完成后附加动态元数据,可以支持校验以及加密信息

x-amz-content-sha256参数是由S3部署服务器配置的,所以应该是.NET使用的AWSSDK.S3与S3服务器配置协议不匹配。

而我.NET代码中并未设置这类Headers参数。也就是AWSSDK.S3新版本,Stream类文件上传将默认headhers参数修改了。。。

找了下Github,AWSSDK未开源。但也有同学反馈新S3 SDK修改header参数问题:Support STREAMING-AWS4-HMAC-SHA256-PAYLOAD-TRAILER signature in S3 PUT · Issue #9263 · getmoto/moto

所以, 不动S3服务器的情况下,.NET我回退AWSSDK.S3的Nuget版本3.7.400.3 解决此问题

回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部