amazon-s3 - 如何在 Minio 上找到 SignatureDoesNotMatch 错误的来源
问题描述
一年多以来,我们一直在运行一个单页应用程序(带有 Angular 的 SPA),它从 .NET Core API 接收带有预签名 url 的 Json 对象。SPA 显示一个列表并使用预签名的 url 显示图像/视频(直接从
突然,列表中的一些预签名 url 仍然有效,其他的SignatureDoesNotMatch
在嵌入图像/视频时会导致错误。其他人工作。
<Error><Code>SignatureDoesNotMatch</code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>...
也许有人对 Minio/S3 有经验,可以帮助我建立一个检查列表来查找此错误的根源。
到目前为止,我有:
配置(访问密钥、密钥、主机):因为大多数 url 都有效,所以有些不应该是有效的
Url 生成:对于工作和不工作的 url,我使用 Minio .NET SDK (3.02) 生成它们。
await _minio.PresignedGetObjectAsync(bucket, key, ttl);
await _minio.PresignedPutObjectAsync(bucket, key, ttl);
- 混合获取和放置网址:这可能是一个原因吗?错误报告中的屏幕截图显示了预签名的 url,但如果它是作为 put 或 get url 生成的,我没有在 url 中看到指示符。
解决方案
@monty 我没有足够的信息来确定根本原因。这可能是由于对象名称的错误编码可能已在新版本的 minio 和 minio dot-net SDK 中修复造成的。
你用的是什么版本的minio?我看到您使用的是 Minio Dotnet 3.0.2 版本。
它是否发生在某些文件和对象名称中?
推荐阅读
- html - 在 HTML 页面中嵌入概念页面
- python - PyAudio 安装错误:构建轮子失败
- linux - Linux 服务器上的 Umbraco 9(Kestrel 服务)- 部署代码更改后站点死机
- mysql - 尝试使用 SQL 查询在后端将两个表连接在一起,但看不到其中一个表的数据
- javascript - ioslides R markdown 页脚在每页上都有图像
- python - 如何从 Linux 上的 python 控制 labview 中的实验?
- gremlin - Gremlin with Neptune:使用具有先前边缘值的数学结果过滤边缘
- asp.net-core-identity - 我们如何使用 IUserClaimsPrincipalFactory
? - c# - 如何使用 VPC 终端节点 URL 将文件上传到 Amazon S3 存储桶?
- python - 如何拆分熊猫数据框以适应 deepL API 请求限制?