gpt4 book ai didi

ios - Amazon S3 iOS SDK 照片上传有时会出错 - SignatureDoesNotMatch

转载 作者:行者123 更新时间:2023-12-01 17:55:53 29 4
gpt4 key购买 nike

所以我的 iPhone 应用程序成功地将照片上传到 Amazon S3。我使用了与 S3Uploader 示例项目相同的代码以及最新(1.6.0 版)适用于 iOS 的 Amazon AWS 开发工具包。问题是间歇性地我会收到 SignatureDoesNotMatch 错误(我们计算的请求签名与您提供的签名不匹配。请检查您的 key 和签名方法。)。它没有模式。目前,我的应用程序正在通过对委托(delegate)调用 didFailWithError: 进行一定数量的重试来解决此错误。

到目前为止,我的测试已经进行了足够多的重试,因此用户不会注意到错误,但是当我的签名明显正确时知道我收到了签名 key 错误,这是非常令人沮丧的,因为它有时会起作用。我不确定这是否是 url 编码错误(我的签名 key 中有一个 + 号),但由于我使用的是 iOS SDK,我看不到 PUT url 是如何处理的。

另外,我验证了我的存储桶名称都是小写的,我的文件名只是数字和几个字母。我也尝试了不同的区域,它们都有相同的结果。简而言之,它可能需要 0 次重试到 5 次重试才能获得成功的 PUT 而不会出现 SignatureDoesNotMatch 错误。有没有人有类似的问题?任何帮助将不胜感激。谢谢阅读。

最佳答案

您可能需要在生成签名后对其进行按摩,因为有效的 base64 在查询字符串中并不总是有效的。我一定曾经遇到过同样的问题,因为我在我编写的一些代码中发现了以下注释:

# the "+" is not url-safe, as it gets converted to a space somewhere along the line

# '+' => '%2B'

# while we're at it, we'll go ahead and convert the other non-safe-ish
# characters even though the links seem to work without this step

# '/' => '%2F'
# '=' => '%3D'

我的代码对这 3 个字符进行字符串搜索和替换,在将查询字符串返回给调用者之前将它们更改为它们的 url 编码等效项。我使用了搜索/替换策略,因为我工作的环境没有合适的 url 编码库可用。由于这些是我的代码可以生成的唯一 3 个 base64 字符,这些字符显然不是 url 安全的,因此我显然继续处理了所有三种可能性。

关于ios - Amazon S3 iOS SDK 照片上传有时会出错 - SignatureDoesNotMatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17798733/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com