Amazon web services AmazonS3-如何自动公开文件夹的新内容
我正在使用AmazonS3将图像存储在一个存储桶中,并使用cloudfront获取和发布这些图像。我的问题是,每次我上传一个新的图像,它都是自动私有的(试图得到一个403禁止的结果)。为了能够得到它并在我的网站上显示它,我必须再次公开我的文件夹(在我已经这样做之后)。你知道为什么会有这种行为吗 我的存储桶是公共的,以下是我的IAM权限:Amazon web services AmazonS3-如何自动公开文件夹的新内容,amazon-web-services,amazon-s3,directory,amazon-cloudfront,public,Amazon Web Services,Amazon S3,Directory,Amazon Cloudfront,Public,我正在使用AmazonS3将图像存储在一个存储桶中,并使用cloudfront获取和发布这些图像。我的问题是,每次我上传一个新的图像,它都是自动私有的(试图得到一个403禁止的结果)。为了能够得到它并在我的网站上显示它,我必须再次公开我的文件夹(在我已经这样做之后)。你知道为什么会有这种行为吗 我的存储桶是公共的,以下是我的IAM权限: // First strategy { "Version": "2012-10-17", "Statement": [ { "Eff
// First strategy
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:HeadBucket",
"s3:GetBucketAcl",
"s3:HeadObject",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:GetObjectVersion",
"s3:GetObjectVersionAcl",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectVersionAcl",
"s3:DeleteObject",
"s3:DeleteObjectVersion"
],
"Resource": "arn:aws:s3:::my-bucket-name/*"
}
]
}
// Second strategy
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:ListAllMyBuckets"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::*"
},
{
"Action": [
"acm:ListCertificates",
"cloudfront:*",
"iam:ListServerCertificates",
"waf:ListWebACLs",
"waf:GetWebACL",
"wafv2:ListWebACLs",
"wafv2:GetWebACL"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
“我的bucket name”显然被bucket的实际名称所取代
谢谢。根据子文件夹的前缀创建Lambda触发器。然后在创建事件期间更新对象的权限以使其公开
请参阅:默认情况下,AmazonS3中的对象是私有的 如果希望使对象可公开访问(对于没有IAM凭据的人),则有两个选项: 选项1:桶策略 您可以创建一个桶策略,使内容可以公开访问。例如,此策略授予任何人
GetObject
访问权限:
见:
您还需要关闭S3存储桶上的阻止公共访问,以允许存储桶策略
选项2:公开对象
您也可以将AmazonS3中的特定对象公开
上载对象时,请指定公共读取
的访问控制列表(ACL
)。您还需要关闭“阻止公共访问”以允许对象级权限
当你说“我必须再次公开我的文件夹”时,我怀疑你正在进入Amazon S3控制台,选择一个文件夹,然后使用公开选项。这相当于设置ACL
。您可以通过在上载对象时指定ACL或使用Bucket策略来避免这一额外步骤
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::examplebucket/*"
]
}
]
}