我们正在考虑将文件传送到Cloudfront。
目前,我们会根据个人情况为我们的文件投放生成“安全”网址,如下所示: http://downloads.xxxxx.com/1/2005-01-01_2006-01-01.csv?AWSAccessKeyId=012NFZM3D44FSG20CP82&Expires=1495287427&response-cache-control=No-cache&response-content-disposition=attachment%3B%20filename%3D2005-01-01_2006-01-01.csv&Signature=tWAeES3rhAlv2SQoZkqyYJEexH0%3D
是否有一种简单的方法可以将Cloudfront应用于上面的URL,或者我们是否需要使用签名URL从头开始配置它们?如果我在那里创建一个简单的发行版,S3认证的URL是否会使用Cloudfront“传递”?
答案 0 :(得分:2)
理论上可以将CloudFront配置为传递S3签名的URL,但这样做会破坏所有缓存,所以......不,这不是一个可行的解决方案。
CloudFront使用entirely different algorithm for signed URLs,因此无法简单地将现有的S3签名网址转换为CloudFront签名网址。
另请注意,在签名之前,您需要在网址中嵌入现有的response-*
参数。 CloudFront仍应传递它们,以便S3可以按指示修改其响应。
不相关:您可能会感兴趣的一个功能是,使用CloudFront签名URL,您实际上可以选择将客户端的IP地址嵌入URL中,以便只能从单个IP地址使用URL。这不是可以通过S3签名URL以简单方式完成的事情。