AWS S3使用小结
使用场景一:储存网站的图片,并能被任何人访问
1. 创建一个bucket,名字与需要绑定的域名一致。
例如,根域名是mysite.com,希望把所有图片放在pic.mysite.com下面,访问的时候用pic.mysite.com/a.jpg就能直接访问,那么这个bucket的名字就应该设置成pic.mysite.com
这时候就能在控制台上传文件了,当然做实际应用的话需要用他的SDK写程序来实现上传功能。
我们上传一个a.jpg,右边Properties里面给出了一个link "https://s3-xxx.amazonaws.com/pic.mysite.com/a.jpg",xxx会根据你的s3
所在区域而不同,点击进去是无法访问的,会提示没有权限。
2. 设置bucket的权限。
在Properties > Permissions 里面点击 Edit Bucket Policy,里面会有Policy Generator指导你怎么编写Policy。
这里我们需要让任何人都能访问bucket里面存的图片,所以把GetObject的权限设置为所有人。
{ "Version": "2012-10-17", "Id": "Policy1434523265640", "Statement": [ { "Sid": "Stmt1434523262292", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::pic.mysite.com/*" } ] }
这个时候访问前面的https://s3-xxx.amazonaws.com/pic.mysite.com/a.jpg,就可以顺利打开了。
3. 设置域名。
其实 http://pic.mysite.com.s3-xxx.amazonaws.com/a.jpg 这个链接也能打开上面的图片,所以只要给pic.mysite.com设置一个别名CNAME "pic.mysite.com.s3-xxx.amazonaws.com" 就大功告成了。
使用场景二:用S3托管静态网站
可以参考这个文档:
https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html