【问题标题】:How to find the source for the SignatureDoesNotMatch error on Minio如何在 Minio 上找到 SignatureDoesNotMatch 错误的来源
【发布时间】:2019-07-27 20:37:39
【问题描述】:

一年多以来,我们一直在运行一个单页应用程序(带有 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 有经验,可以帮助我建立一个检查列表来查找此错误的根源。

到目前为止,我有:

  1. 配置(访问密钥、密钥、主机):由于大多数 url 都有效,所以有些不应该是有效的

  2. Url 生成:对于工作和不工作的 url,我使用 Minio .NET SDK (3.02) 生成它们。

await _minio.PresignedGetObjectAsync(bucket, key, ttl); 
await _minio.PresignedPutObjectAsync(bucket, key, ttl); 
  1. 混合获取和放置网址:这可能是原因吗?错误报告中的屏幕截图显示了预签名的 url,但如果它是作为 put 或 get url 生成的,我没有在 url 中看到指示符。

【问题讨论】:

    标签: amazon-s3 .net-core minio


    【解决方案1】:

    @monty 我没有足够的信息来确定根本原因。这可能是由于对象名称的错误编码可能已在新版本的 minio 和 minio dot-net SDK 中修复造成的。

    您使用的是什么版本的 minio?我看到您使用的是 Minio Dotnet 3.0.2 版本。

    某些文件和对象名称是否会发生这种情况?

    【讨论】:

    • 有趣的原因可能是凭证(访问和密钥)包含特殊字符,如“!”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 2018-09-19
    • 1970-01-01
    • 2015-02-25
    相关资源
    最近更新 更多