amazon-s3 - 使用放大覆盖公开特定的 S3 存储桶文件夹

标签 amazon-s3 aws-cloudformation aws-amplify

使特定的 s3 文件夹可公开访问。例如,让所有人都可以访问 public/protected/ 为私有(private)。

最佳答案

  1. amplify override storage
  2. 该命令创建一个新的 overrides.ts文件位于amplify/backend/storage/<resource-name>/
  3. 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/

相关文章:

node.js - 如何修复放大 CLI 错误 : "-bash: amplify: command not found"

swift - 需要解决 AWSAppSync 和 AWSMobileClient 的 AWSCore 版本依赖性

amazon-s3 - React Js 应用程序可以托管在 S3 存储桶上吗

amazon-web-services - 如何在不同的 cloudformation 堆栈中分离 dynamodb 表及其 GSI?

terraform - 使用无服务器框架创建日志组和日志流

amazon-web-services - 如何指示 AWS CloudFormation 模板在特定区域创建资源?

cors - 使用 Confluent Cloud 和 Kafka 的 CORS 策略阻止了 API 请求

php - Symfony2 与 KnpGaufrette 与 S3 与 LiipImagine

amazon-web-services - Amazon Web Services(AWS)Lambda教程期间调用命令/Json格式错误

python - 无法使用 Boto3 获取桶的总大小