使用AWS CloudFront和Android

时间:2015-08-13 17:34:07

标签: android amazon-web-services amazon-s3 amazon-cloudfront

对于我正在进行的项目,我需要在AWS S3上使用Android上的视频。

我正在使用带有签名网址的私人文件访问权限。 一切正常,但视频流初始化时间很长(可能是6-10秒)。

我正在尝试整合CloudFront以帮助更快地提供内容。 我已经创建了我的发行版'在AWS控制台上并将适当的字段设置为私有内容等。

我坚持生成正确的网址,以便从CloudFront而不是S3中使用文件。

我似乎没有找到关于CloudFront + Android的任何文档,也没有找到任何gradle依赖项。

我发现在线资源指向依赖于CloudFrontUrlSigner类(仅包含在Java SDK而不是Android SDK中)的Java tuts

所以我尝试在我的app.gradle文件上使用compile 'com.amazonaws:aws-java-sdk-cloudfront:1.10.+',我可以完成'指南,但我得到了构建时错误。

我怎样才能做到这一点?

谢谢大卫。

1 个答案:

答案 0 :(得分:2)

如果您打算在Android上通过CloudFront访问私人内容,那将会有点棘手。您需要使用私钥对URL进行签名。见http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-trusted-signers.html。但是,这通常被认为是移动平台上的风险,因为您需要将密钥部署到您的应用程序。这是CloudFrontUrlSigner对AWS Android SDK不可用的主要原因。我建议您创建自己的后端,可以销售CloudFront网址并发送到您的应用。以下是对网址https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-cloudfront/src/main/java/com/amazonaws/services/cloudfront/CloudFrontUrlSigner.java进行签名的代码。