Как создать корзину с открытым доступом для чтения?

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 'url.com/id=userIDmadeUPofletterandnumbers&em=MemberType' urlValue UNION ALL
  SELECT 'url.com/id=asd1221231sf&em=studentMember'
)
SELECT REGEXP_EXTRACT(urlValue, r'id=(\w+)') id, urlValue
FROM `project.dataset.table`

Row id                              urlValue     
1   userIDmadeUPofletterandnumbers  url.com/id=userIDmadeUPofletterandnumbers&em=MemberType  
2   asd1221231sf      url.com/id=asd1221231sf&em=studentMember    
0
задан Klaas 18 January 2019 в 18:19
поделиться

2 ответа

Вместо того, чтобы использовать CorsConfiguration для корзины, вам нужно прикрепить политику корзины к ней. Попробуйте следующее:

Resources:
  AttachmentsBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: range-picker-bucket-${self:custom.stage}

  AttachmentsBucketAllowPublicReadPolicy:
    Type: AWS::S3::BucketPolicy
    Properties:
      Bucket: !Ref AttachmentsBucket
      PolicyDocument:
        Version: "2012-10-17"
        Statement: 
          - Effect: Allow
            Action: 
              - "s3:GetObject"
            Resource: 
              - !Join ['/', [!Ref AttachmentsBucket, 'public']]
            Principal: "*"

0
ответ дан Milan Cermak 18 January 2019 в 18:19
поделиться

Как уже говорили другие, вам необходимо реализовать Bucket Policy , такую ​​как эта:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadForGetBucketObjects", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::{NAME_OF_YOUR_BUCKET_HERE}/*" } ] }

Это можно сделать в консоли AWS. выбрав Bucket , затем Permissions , затем Bucket Policy . Похоже, @Milan C. указывает, как объявить это в файле serverless.yml .

0
ответ дан CSSian 18 January 2019 в 18:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: