项目中需要上传图片至S3中,但是发现无论是通过AWS控制台上传的还是通过代码上传的,都无法通过url访问,都需要重新设置权限才可以,后来稍微研究了下,总结如下:
1、设置存储桶的共有访问
2、设置存储桶策略
这块比较恶心,不熟悉aws的可能不太会,我也是从网上找的,然后测试的,确实可用,策略代码如下:
其中“20221227bucket”是自己存储桶的名称,其它的复制过去直接用就行。
{
"Version": "2012-10-17",
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "statement1",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::20221227bucket/*"
}
]
}
然后顺便说下,这个策略可以通过aws自带的策略生成页面去生成,不过也需要你比较了解这些才行(真是服了,之前用过阿里的对象存储感觉很简单)
https://awspolicygen.s3.amazonaws.com/policygen.html
设置完成后,无论是通过aws控制台上传图片还是通过程序上传,都可以通过“对象url”在公网上进行访问。
3、设置访问密钥
通过程序上传图片的时候需要密钥及密钥Id,正常来说是创建IAM账户,然后设置账户的“访问密钥”,但是我对aws不太熟,所以我这里创建的是根账户的密钥(不推荐)
参考:
https://blog.csdn.net/qq_31275085/article/details/113547485
标签:访问,S3,通过,aws,url,密钥,公网,上传 From: https://www.cnblogs.com/PrintY/p/17008081.html