我们只是在我们的软件增加了一个autoupdater并得到了一些bug报告说,自动更新将无法正常完成,因为下载的文件的SHA1校验码不匹配.我们托管在Amazon S3上......
这或者我的代码有问题或者S3有问题.
我重读我的代码是否有可疑的东西,并写了一个简单的脚本,下载并检查下载文件的校验和,并在同时,确实获得了一些错误一次(1出40昨天).今天似乎还可以.
你遇到过那种问题吗?有某种解决方法吗?
额外信息:测试在日本进行.
亚马逊的S3偶尔会在上传或下载过程中出现错误 - 通常是"500:内部服务器"错误.错误率通常很低,但如果服务负载很重,它可能会出现峰值.错误率绝不是0%,因此即使在最好的情况下,偶尔的请求也会失败.
您是否在检查autoupdater中的HTTP响应代码?如果没有,您应该在执行校验和之前检查下载是否成功(HTTP 200).理想情况下,您的应用应重试失败的下载,因为瞬态错误是客户需要处理的S3不可避免的"功能".
值得注意的是,如果您的客户遇到500个错误,您可能在S3服务器日志中看不到任何这些错误的证据.这些错误似乎发生在请求到达服务的日志记录组件之前.