开发者社区 问答 正文

oss 报错SignatureDoesNotMatch

js上传,两个不同的 aksk 同一个文件一个正常上传,一个报签名错误,已有上传权限,无跨域问题

SignatureDoesNotMatch The request signature we calculated does not match the signature you provided. Check your key and signing method. 60B8F2E8BEC290303999E853 cainiao-oss-zhangbei.oss-cn-zhangjiakou.aliyuncs.com LTAI5tKTNSNE2E9q1JVAL9o3 2Xs9eZHL0UivSvJ+SO0VtaWPIpA= PUT application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Thu, 03 Jun 2021 15:19:03 GMT x-oss-date:Thu, 03 Jun 2021 15:19:03 GMT x-oss-user-agent:aliyun-sdk-js/6.15.1 Chrome 90.0.4430.212 on OS X 10.15.7 64-bit /cainiao-oss-zhangbei/cn-purchase/6f8a7b1d-e547-487c-86b3-d444369530d1/4月日需-汇总.xlsx 50 55 54 0A 0A 61 70 70 6C 69 63 61 74 69 6F 6E 2F 76 6E 64 2E 6F 70 65 6E 78 6D 6C 66 6F 72 6D 61 74 73 2D 6F 66 66 69 63 65 64 6F 63 75 6D 65 6E 74 2E 73 70 72 65 61 64 73 68 65 65 74 6D 6C 2E 73 68 65 65 74 0A 54 68 75 2C 20 30 33 20 4A 75 6E 20 32 30 32 31 20 31 35 3A 31 39 3A 30 33 20 47 4D 54 0A 78 2D 6F 73 73 2D 64 61 74 65 3A 54 68 75 2C 20 30 33 20 4A 75 6E 20 32 30 32 31 20 31 35 3A 31 39 3A 30 33 20 47 4D 54 0A 78 2D 6F 73 73 2D 75 73 65 72 2D 61 67 65 6E 74 3A 61 6C 69 79 75 6E 2D 73 64 6B 2D 6A 73 2F 36 2E 31 35 2E 31 20 43 68 72 6F 6D 65 20 39 30 2E 30 2E 34 34 33 30 2E 32 31 32 20 6F 6E 20 4F 53 20 58 20 31 30 2E 31 35 2E 37 20 36 34 2D 62 69 74 0A 2F 63 61 69 6E 69 61 6F 2D 6F 73 73 2D 7A 68 61 6E 67 62 65 69 2F 63 6E 2D 70 75 72 63 68 61 73 65 2F 36 66 38 61 37 62 31 64 2D 65 35 34 37 2D 34 38 37 63 2D 38 36 62 33 2D 64 34 34 34 33 36 39 35 33 30 64 31 2F 34 E6 9C 88 E6 97 A5 E9 9C 80 2D E6 B1 87 E6 80 BB 2E 78 6C 73 78

请求 PUT /cn-purchase/6f8a7b1d-e547-487c-86b3-d444369530d1/4%E6%9C%88%E6%97%A5%E9%9C%80-%E6%B1%87%E6%80%BB.xlsx HTTP/1.1 Host: cainiao-oss-zhangbei.oss-cn-zhangjiakou.aliyuncs.com Connection: keep-alive Content-Length: 14660 x-oss-user-agent: aliyun-sdk-js/6.15.1 Chrome 90.0.4430.212 on OS X 10.15.7 64-bit x-oss-date: Thu, 03 Jun 2021 15:19:03 GMT sec-ch-ua-mobile: ?0 authorization: OSS LTAI5tKTNSNE2E9q1JVAL9o3:2Xs9eZHL0UivSvJ+SO0VtaWPIpA= Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Content-Disposition: inline sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90" Accept: / Origin: https://cprm.cainiao.test Sec-Fetch-Site: cross-site Sec-Fetch-Mode: cors Sec-Fetch-Dest: empty Referer: https://cprm.cainiao.test/ Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.

展开
收起
游客4atappysdspui 2021-06-04 09:47:30 1161 分享 版权
阿里云 AI 助理回答

遇到 "SignatureDoesNotMatch" 错误,通常意味着您的签名计算与阿里云OSS服务端计算的签名不一致。这可能由以下几个原因导致:

  1. AccessKey Secret有误:请确认您使用的LTAI5tKTNSNE2E9q1JVAL9o3这个AccessKey Secret是正确的,没有输入错误或混淆了不同AccessKey的Secret。

  2. 时间戳不一致:签名中包含了时间戳(在请求头x-oss-date中),确保您的系统时间与阿里云服务器时间同步。即使有几分钟的差异也可能导致签名验证失败。

  3. 签名方法问题:确保您使用的签名算法与阿里云要求的一致。阿里云OSS一般使用HMAC-SHA1算法进行签名。如果您手动实现签名逻辑,请仔细检查算法实现是否正确。

  4. 字符串编码:在生成签名时,所有参与签名的字符串(如HTTP方法、路径、查询参数、Header等)必须按照规定进行URL编码和排序。确保编码方式无误。

  5. Header一致性:签名过程中需要包含所有参与签名的Header,且这些Header的名称需要按照字母顺序排序后参与签名。请检查是否有遗漏或错误地添加了未参与签名的Header。

  6. 跨域设置:虽然您提到无跨域问题,但确保OSS Bucket的CORS规则允许来自特定源的跨域请求,并且请求中的Origin头部与CORS规则匹配。

  7. Content-Type:虽然它通常不会直接影响签名,但确保Content-Type设置正确,因为某些安全策略或处理流程可能会对它敏感。

解决步骤建议: - 首先,核对AccessKey Secret的准确性。 - 确认系统时间同步。 - 检查签名生成代码,对照阿里云官方文档或SDK的签名生成示例,确保每一步都正确无误。 - 使用阿里云提供的SDK进行上传操作,以减少手动实现签名出错的可能性。 - 如果继续遇到问题,可以尝试使用阿里云控制台的“OpenAPI Explorer”功能,通过界面生成一个成功的请求,然后对比您程序生成的请求详情,找出差异所在。

如果以上步骤都无法解决问题,建议联系阿里云技术支持提供更详细的日志信息以便进一步排查。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答