使特定的 s3 文件夹可公开访问。例如,让所有人都可以访问 public/
。 protected/
为私有(private)。
最佳答案
- 做
amplify override storage
- 该命令创建一个新的
overrides.ts
文件位于amplify/backend/storage/<resource-name>/
下 - 在
override.ts
中添加如下存储桶策略
import {AmplifyS3ResourceTemplate} from '@aws-amplify/cli-extensibility-helper'
export function override(resources: AmplifyS3ResourceTemplate) {
resources.addCfnResource(
{
type: 'AWS::S3::BucketPolicy',
properties: {
Bucket: {
Ref: 'S3Bucket',
},
PolicyDocument: {
Statement: [
{
Action: ['s3:GetObject'],
Effect: 'Allow',
Resource: [
{
'Fn::Sub': 'arn:aws:s3:::${S3Bucket}/public/*',
},
],
Principal: {
AWS: ['*'],
},
},
],
},
},
},
'MyS3BucketPolicy'
)
}
关于amazon-s3 - 使用放大覆盖公开特定的 S3 存储桶文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74843638/