所以我的 iPhone 应用程序成功地将照片上传到 Amazon S3。我使用了与 S3Uploader 示例项目相同的代码以及最新(1.6.0 版)适用于 iOS 的 Amazon AWS 开发工具包。问题是间歇性地我会收到 SignatureDoesNotMatch 错误(我们计算的请求签名与您提供的签名不匹配。请检查您的密钥和签名方法。)。它没有模式。目前,我的应用程序正在通过对委托调用 didFailWithError: 进行一定数量的重试来解决此错误。
到目前为止,我的测试已经进行了足够多的重试,因此用户不会注意到错误,但是当我的签名明显正确时知道我收到了签名密钥错误,这是非常令人沮丧的,因为它有时会起作用。我不确定这是否是 url 编码错误(我的签名密钥中有一个 + 号),但由于我使用的是 iOS SDK,我看不到 PUT url 是如何处理的。
另外,我验证了我的存储桶名称都是小写的,我的文件名只是数字和几个字母。我也尝试了不同的区域,它们都有相同的结果。简而言之,它可能需要 0 次重试到 5 次重试才能获得成功的 PUT 而不会出现 SignatureDoesNotMatch 错误。有没有人有类似的问题?任何帮助将不胜感激。谢谢阅读。