使用iOS后台下载(NSURLSession)

时间:2015-07-17 15:49:00

标签: ios7 amazon-s3

考虑媒体下载系统的以下组件:

  • 有一个服务器组件生成到S3对象的私有过期链接,而短生命周期(参见例如Amazon S3 pre-signed link generationAmazon S3 Expiration Date?) - 基本上是出于安全原因。在S3中,到期日是链接签名的一部分,因此是生成的URL的一部分
  • 应用可以请求下载潜在大型媒体内容的链接
  • 如果这样的链接过期,应用可以重新请求内容,接收指向相同 S3对象的链接(因为新签名) / LI>

此设置应允许在下载链接的生命周期之后恢复下载(通过简单地将从各种链接下载的内容拼接在一起)。

使用iOS 7,我们现在拥有iOS后台传输服务和NSURLSession。遗憾的是,似乎当您提供NSURLSession的链接并且此链接过期且下载因此失败时,到目前为止下载的内容将丢失。

那么,使用后台传输服务,在上述场景中有没有办法恢复下载

如何恢复从第二个来源下载相同的内容?或者,当下载尝试失败时,您是否可以提供NSURLSessionDownloadTask故障转移处理?或者,有没有机会获取下载内容“到目前为止”以便自己进行拼接?

或者,服务器端是否有任何策略来解决这个问题(不,我不想在链接之前将我自己的Web服务器通过所有S3流量通过)?

1 个答案:

答案 0 :(得分:0)

我能想到的唯一想法是根据链接到期时间创建一个计时器