使用 AWS CloudFront 和 Android

Using AWS CloudFront and Android

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

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

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

我一直在生成正确的 url,以便从 CloudFront 而不是 S3 使用文件。

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

我发现的在线资源指向 Java 依赖于 CloudFrontUrlSigner class (它只包含在 Java SDK 中,而不是 AndroidSDK)

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

我怎样才能做到这一点?

谢谢,大卫。

如果您计划在 Android 上通过 CloudFront 访问私人内容,这会有点棘手。您需要使用私钥对网址进行签名。参见 http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-trusted-signers.html. However, this is usually considered a risk on mobile platform as you need to deploy the key to your app. It's the main reason that CloudFrontUrlSigner is unavailable to the AWS Android SDK. I suggest to create your own backend which can vend a CloudFront url and send to your app. Here is the code that signs urls https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-cloudfront/src/main/java/com/amazonaws/services/cloudfront/CloudFrontUrlSigner.java