在S3上,我们将所有文件都设为私有。用户无法通过S3链接加载任何文件。但它们都是通过云端链接公开的。
如何限制对./restricted.txt的访问? (只有使用签名URL链接的用户才能通过cloudfront链接看到该文件),。/ not_restricted.txt必须同时公开。
我是怎么做到的。
我创建了/ public& s3上的/ private文件夹,将我的私有/公共文件分开,创建指向/ public的cloudfront origin。所以我/ / public文件夹中的所有S3文件都是公共的,我可以使用没有公共前缀/img1.jpg istead /public/img1.jpg的链接加载它们,因为cloudfront将/ public视为根文件夹。
现在,我在/ private或/ public文件夹上的任何其他位置的所有文件都是通过S3和cloudfront链接保密的。
但我不知道如何为具有cloudfront路径的/private/restricted.txt文件创建签名URL。我可以创建使用S3路径的签名网址,但我需要有云端链接。
提前致谢。
答案 0 :(得分:2)
在CloudFront中,存在“缓存行为”的概念。根据URL路径,这些允许您修改缓存行为,包括使用签名URL / Cookies的要求。
如果我理解你想要:
这可以通过在CloudFront分配中添加新的缓存行为并将Restrict Viewer Access (Use Signed URLs or Signed Cookies)
设置为是来完成。例如:
重申一下,实现这一目标的最简单方法是
如果这不能回答您的问题,例如,如果您需要维护路径并且不能在URL架构中使用/ public和/ private,请通过评论告诉我,我可以尝试详细说明。谢谢!