S3文件上传,默认公开(可通过对象url在公网访问)

项目中需要上传图片至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

https://blog.upx8.com/2957

posted @ 2022-12-27 14:53  PrintY  阅读(1048)  评论(0编辑  收藏  举报