ios - 从 Amazon CDN 到 iOS 设备的频繁下载损坏/不完整的原因是什么?

标签 ios download amazon asihttprequest corrupt-data

我提到了 Amazon CDN 和 iOS 设备,因为我不确定哪个部分是罪魁祸首。

我在 Amazon CDN 中托管 jpg 和 PDF 文件。
我有一个 iOS 应用程序,可以在队列中下载大量 jpg 和 PDF 文件。我曾尝试使用 dataWithContentOfURL 和 ASIHttpRequest,但得到了相同的结果。 ASIHttpRequest 至少给了一个回调,表明下载有问题,所以我可以强制它重试。

但这种情况经常发生。在 100 个文件中,通常需要重新下载 1-5 个文件。如果我检查文件大小,它小于原始文件大小并且无法打开。
损坏的文件通常每次都不同。

我在不同的 ISP 和网络上试过这个。一样的。

是否有我在 Amazon CDN 中遗漏的配置,或者我在 iOS 下载中遗漏了其他配置?不建议排队下载大量文件吗?

最佳答案

我不会在 iPhone 上一次下载超过 3 或 4 个项目。不管实现限制(ASIHTTPRequest 还是不错的)或磁盘抖动的可能性,您必须为 3G 用例编写代码,除非您的应用程序明确标记(如 Info.plist 设置)它需要 Wi- Fi。
ASIHTTPRequest 中存在解决方案本身使这些操作顺序而不是并发。添加您的ASIHTTPRequest反对 ASINetworkQueue ([ASINetworkQueue queue] 返回的那个就可以了)。他们将一个接一个地被处决。

请注意,如果您遇到任何错误,默认情况下将取消队列上的所有请求,除非您设置队列的 shouldCancelAllRequestsOnFailureNO .

编辑:我刚刚注意到您已经提到使用下载队列。因此,我怀疑这在另一端比在您的设备上更成问题。连接可能由于各种原因而中断:保持事件设置太短,服务器上的资源太少,因此超时,服务器和 Internet 主干之间的某些物理链接间歇性地出现故障。不过,可以肯定的是,您可能需要在多台设备上测试您的应用程序,以确保它在所有设备上始终失败,才能真正做到这一点。

关于ios - 从 Amazon CDN 到 iOS 设备的频繁下载损坏/不完整的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7199094/

相关文章:

objective-c - 从捕获的图像中识别对象

php - 检索仅具有电子邮件地址的 Facebook/Google+/Linkedin 个人资料图片

php - 禁止下载 PHP 文件

amazon-web-services - 如果项目不存在,则 Dynamodb 批处理

ios - 带有 reloadData 的 AKPickerView 导致奇怪的行为

ios - 在 Interface Builder 中添加约束时 Xcode 无限期挂起

Python 网页抓取 - 下载文件并将所有数据存储在 xml 中

linux - 无法将tomcat升级到最新版本

https - 如何使用 wget 从 S3 存储桶下载文件?

html - 如何在 UIWebView 中播放视频,但它不会在原生电影播放器​​中打开?