配置AWS cloudfront以从s3存储桶提供已签名的URL

Jab*_*baa 0 php amazon-s3 amazon-web-services laravel-5

我有一个private在我的s3存储桶中命名的文件夹,该文件夹中的内容只能由授权用户访问(即禁用公共读取访问).

所以我生成sigened url用于访问该文件夹中的一个对象,它工作正常.

这是签名的URL格式

s3-<region>.amazonaws.com/<folder>/<imagename>??X-Amz-Content-Sha256=.......
Run Code Online (Sandbox Code Playgroud)

此外,我还为上述s3存储桶创建了云端分发,以获得更好的性能.这是云端网址xxxxjjjj.cloudfront.net

那么我如何使用这个云端分发服务我的签名网址?

当我尝试使用此网址时

xxxxjjjj.cloudfront.net/<folder>/<imagename>??X-Amz-Content-Sha256=.......

我将获得访问被拒绝错误,我认为这不是通过cloudfront分发提供s3签名网址内容的正确方法.

使用php laravel框架

Mic*_*bot 5

CloudFront的签名URL使用与S3的签名URL不同的格式和不同的凭据.

阅读通过CloudFront提供的私人内容服务.

在GitHub上有一个laravel-url-signer,或者您可以在CloudFront文档中编写自己的代码.

要测试您的CloudFront和S3设置,您可以aws cloudfront sign ...在aws-cli中使用生成测试签名的URL.