3

我们在 aws 中有 s3 存储桶,其中包含视频。我们需要使用 AWS iOS sdk 流式传输这些视频。

到目前为止,我能找到的唯一选择是使用 URL 进行流式传输。(对于公共视频)

但是 s3 getOBject 请求呢 - 我可以下载视频然后查看它,但是有没有办法分块下载并查看它?

4

3 回答 3

7

找到了一种方法,您可以生成安全的 URL 来访问

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

这仅适用于 AWSIOSSDK 1+ 而不是 2

于 2012-10-24T13:45:27.277 回答
3

我帮助维护适用于 iOS 的 AWS 开发工具包。

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

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

SDK 还包含一个委托协议,可用于处理以流方式下载的数据。

AmazonRequestDelegate 协议

于 2012-10-24T21:12:57.150 回答
0

getObject 默认情况下是一个非阻塞下载调用。因此,基本上该框架旨在处理下载完成后的回调,以便为您提供输出流中的数据并将其提供给客户端流以供查看。

SDK 支持非阻塞下载,因此理想情况下您也可以在客户端分块下载。

于 2012-10-23T23:16:40.373 回答