是否可以从网站主域上的URL提供AWS S3图像?
我的网站是一个运行在https://example.com之类的URL上的Express应用程序。我正在使用AWS S3托管网站的图像。但是,我不想使用原始的S3 URL,而是要使用位于我的主域中的URL,如下所示:
https://example.com/image/imagename.jpg
我读过的大多数文章都涉及为子域使用CNAME记录,或将整个站点托管在S3上,而这些都不是我想要做的。
答案 0 :(得分:0)
您可以使用AWS Cloudfront和AWS Route 53与AWS S3结合创建DNS记录。
在这里我附上了一个教程来做:
https://www.maketecheasier.com/configure-amazon-s3-as-a-content-delivery-network/
https://reidweb.com/2017/02/06/cloudfront-cdn-tutorial/
https://adefy.com/2016/04/25/setting-up-amazon-s3-cloudfront-route53/
如果您有疑问,可以告诉我问题所在,因为本教程很旧,我可以为您提供帮助。
答案 1 :(得分:0)
据我了解,您想要的网址是:
https://example.com/image/imagename.jpg
,并且不想使用S3来托管您的网站,那么在这种情况下,您可以使用s3:GetObject
键创建一个存储桶策略AWS:refer
许可,条件为条件,该条件告诉GetObject请求必须来自特定网站。
以下是示例存储桶策略:
{
"Version":"2012-10-17",
"Id":"http referer policy example",
"Statement":[
{
"Sid":"Allow get requests originating from www.example.com and example.com.",
"Effect":"Allow",
"Principal":"*",
"Action":"s3:GetObject",
"Resource":"arn:aws:s3:::examplebucket/*",
"Condition":{
"StringLike":{"aws:Referer":["http://www.example.com/*","http://example.com/*"]}
}
}
]
}
有关更多信息,您可以阅读this document
希望这会有所帮助。
谢谢!