Upublicznij wiadro w Amazon S3 [zamknięte]

286

Jak mogę ustawić segment w Amazon S3, aby wszystkie pliki były domyślnie tylko do odczytu publicznego?

Zwycięzca
źródło
10
Jestem zirytowany, że to pytanie zostało oznaczone jako nie na temat. AWS ma kluczowe znaczenie dla poważnych programistów. Dodałbym, że można użyć polecenia cli sync z argumentem acl w następujący sposób:aws s3 sync ./local-folder-name s3://remote-bucket-name --acl=public-read
John Vandivier
Ta odpowiedź na podobny post może pomóc: stackoverflow.com/a/23102551/475882
jaxxbo

Odpowiedzi:

462

Możesz ustawić zasady segmentu zgodnie z opisem w tym poście na blogu:

http://ariejan.net/2010/12/24/public-readable-amazon-s3-bucket-policy/


Zgodnie z sugestią @ robbyt, utwórz zasadę segmentu za pomocą następującego JSON:

{
  "Version": "2008-10-17",
  "Statement": [{
    "Sid": "AllowPublicRead",
    "Effect": "Allow",
    "Principal": { "AWS": "*" },
    "Action": ["s3:GetObject"],
    "Resource": ["arn:aws:s3:::bucket/*" ]
  }]
}

Ważne : zamień bucketw Resourcewierszu nazwę wiadra.

Zawiłości
źródło
Podczas korzystania z oficjalnego interfejsu AWS CLI arn:aws:s3:::bucketnależy również dodać do Resourcetablicy. (Więc bez /*.) Mam nadzieję, że to pomoże innym, którzy zmagali się z tym, jak ja.
silvenon
Mój błąd. Jest to potrzebne tylko, jeśli planujesz sync, a nie tylko przeglądać wiadro.
silvenon
6
Aby wesprzeć anonimowy dostęp za pośrednictwem boto Pythona, oprócz ustawienia tej zasady, musiałem również nadać Listuprawnienia Everyonew sekcji Właściwości> Uprawnienia segmentu.
Chris Betti,
jaka jest zasada pisania wersji? Używam bieżącej daty 16.11.2017, zgłasza: Błąd: polityka musi zawierać prawidłowy ciąg wersji
Timothy.Li
1
@ Timothy.Li pamiętasz, aby zawrzeć go w cudzysłów? "2017-11-16",
froggomad