2012-10-23 115 views
3

我们有aws中的s3存储桶,其中有视频。我们需要使用AWS iOS sdk传输这些视频。串流s3私人视频

到目前为止,我能找到的唯一的选择是使用URL流(公共视频)

但对于S3 GetObject的请求 - 我可以下载视频,然后查看它,但有没有办法下载在大块视图呢?

回答

6

找到一种方法来做到这一点,您生成安全网址来访问AWSIOSSDK

S3GetPreSignedURLRequest * request = [[S3GetPreSignedURLRequest alloc] init]; 
request.key = fileName; 
request.bucket = self.bucket; 
[request setExpires:[NSDate dateWithTimeIntervalSinceNow:3600]]; 

这仅适用于1+不是2

+0

我知道这是旧的,但无论如何。我可以看到对象被创建,你从哪里得到的URL? – Esko918

+0

你能澄清一下什么对象吗? –

+0

我想通了。在创建presignedurl请求之后,我必须使用''[[[AWSS3PreSignedURLBuilder defaultS3PreSignedURLBuilder] getPreSignedURL:request]''。该块返回一个AWTask,它是已生成的URL。我仍然没有完成它,但我认为多数民众赞成的方式去 – Esko918

0

getObject默认为非阻塞下载调用。所以基本上这个框架被设计为在下载完成后处理回调,以便为您提供输出流中的数据并将其提供给客户端流供查看。

软件开发工具包支持非阻塞式下载,所以理想情况下您也可以在客户端以块的形式下载。

3

我帮助维持AWS SDK适用于iOS。

SDK支持获取请求的范围,因此您可以在离散操作中下载数据块。

S3GetObjectRequest *getObjectRequest = [[S3GetObjectRequest alloc] initWithKey:FILE withBucket:BUCKET]; 
[getObjectRequest setRangeStart:START rangeEnd:END]; 
[s3 getObject:getObjectRequest]; 

SDK还包含可能被使用,因为它被以流方式下载到处理数据的委托协议。

AmazonRequestDelegate protocol