Amazon web services 如何在Cloudfront中使用已签名的URL保护某些内容,同时释放internet上的其他资源

Amazon web services 如何在Cloudfront中使用已签名的URL保护某些内容,同时释放internet上的其他资源,amazon-web-services,amazon-s3,amazon-cloudfront,Amazon Web Services,Amazon S3,Amazon Cloudfront,我正在使用无服务器框架进行AWS开发 我有一个S3桶,里面有不同的资产(视频、图像等) 我通过Cloudfront提供桶里的东西 我的目标是让一些文件在互联网上免费(图像)和通过签名URL保护其他文件(视频),而不需要两个存储桶(一个用于私人资产,一个用于公共资产) 在Cloudfront级别,我已将TrustedSigners设置为self: TrustedSigners: - self 这就是我实现这一目标的想法: 使用自定义策略,如: 我可能会使用通配符作为图像资源。问题是我不确定这是否

我正在使用无服务器框架进行AWS开发

我有一个S3桶,里面有不同的资产(视频、图像等)

我通过Cloudfront提供桶里的东西

我的目标是让一些文件在互联网上免费(图像)通过签名URL保护其他文件(视频),而不需要两个存储桶(一个用于私人资产,一个用于公共资产)

在Cloudfront级别,我已将TrustedSigners设置为self:

TrustedSigners:
- self
这就是我实现这一目标的想法:

  • 使用自定义策略,如:
  • 我可能会使用通配符作为图像资源。问题是我不确定这是否可行,我不知道该将此策略放在serverless.yml文件的何处

    此策略是否在sdk级别设置

    我看不到任何可以声明自定义策略的地方

  • 拥有两个Cloudfront发行版,并以某种方式设置过滤它们所服务的文件的内容。一个cloudfront将提供来自S3存储桶的图像,而另一个则提供视频。我不确定这是否也可能
  • 你们会怎么做? 有机会吗


    谢谢大家!

    您可以通过缓存行为解决此问题,在缓存行为中使用可信签名者,您可以根据路径(如/images、/video甚至*.jpg等)使用不同的缓存行为

    Path pattern doesn't support regex yet, it supports wildcards currently: 
    * matches 0 or more characters. 
    ? matches exactly 1 character.
    

    您可以使用缓存行为解决此问题,在缓存行为中使用可信签名者,您可以根据路径(如/images、/video甚至*)使用不同的缓存行为。jpg etcI正在尝试此方法,ty@JamesDean!知道PathPattern是否支持正则表达式吗?PathPattern:.+HLS.+ver\d+.M3U8另外,请写一个答案,以便我批准它,因为这似乎是使用Path pattern的解决方案还不支持正则表达式,它目前只支持通配符:*匹配0个或更多字符?正好匹配1个字符。
    Path pattern doesn't support regex yet, it supports wildcards currently: 
    * matches 0 or more characters. 
    ? matches exactly 1 character.