2013-01-17 10 views
36

Mam 1000 plików w Google Cloud Storage, aby upublicznić lub ogólnie hierarchię katalogów.W jaki sposób udostępniasz wiele plików jako publiczne w Google Cloud Storage?

W interfejsie internetowym mogę wydawać tylko jeden naraz.

Czy jest jakiś sposób, aby to zrobić.

+0

Znalazłem to. Możesz uruchomić: gsutil ls, aby uzyskać listę plików. Następnie możesz wprowadzić nazwę do xargs za pomocą gsutil setacl public-read *. Możesz również zrobić gsutil setdefacl publicznie czytając, aby przyszłe przesłane pliki były publiczne. – engineerchuan

Odpowiedz

65

Run gsutil -m acl set -R -a public-read gs://bucket

  • W -m kwestie wiele żądań w tym samym czasie.
  • Wydaje -R zleceń dla każdego obiektu w wiadrze.
  • Wydaje -a żądań dla każdej wersji każdego obiektu.

Aby uzyskać więcej informacji, patrz gsutil help acl.

W warstwie API gsutil problemy następujące żądanie HTTP:

PUT /bucket/obj?acl HTTP/1.1 
Host: storage.googleapis.com 
x-goog-acl: public-read 

można zobaczyć za pomocą flag -D z gsutil:

gsutil -D setacl public-read gs://bucket/obj 
+0

Dzięki za to! Obecnie wyświetlanie dokumentu "gsutil acl set public-read gs: // bucket/object".To jest składnia aktualizacji z 'setacl' do 'acl set'? (https://developers.google.com/storage/docs/gsutil/commands/acl#set) –

+0

Lista wstępnie zdefiniowanych list ACL (prywatnych, publicznych czytających itp.): Https://cloud.google.com/ storage/docs/access-control – ruhong

+0

Wypróbowałem taktykę acl i zaktualizowałem pliki, które właśnie zostały zmienione, aby nie były udostępniane :( – Darian311

42

Po uruchomieniu: gsutil -m acl set -R -a public-read gs://bucket zdefiniować odczytu publicznego dla wszystkich obiektów znajdujących się obecnie w twoim segmencie, ale kiedy przesyłasz nowe pliki, domyślnie nie będą one publiczne.

Co znalazłem to, że warto określić domyślny wiadro ACL jako publicznego odczytania gsutil defacl set public-read gs://bucket

+1

Dobry pomysł, niestety, działa on tylko na górnym poziomie i nie może być używany w folderze w wiadrze. inna odpowiedź działa nawet na folderze –

+1

To polecenie działa, należy przyjąć odpowiedź! –

+3

'gsutil defacl set public-read gs: // bucket' działa z wszystkimi przyszłymi plikami, w tym tymi wewnątrz podkatalogów Ignoruj ​​komentarz Plastly Grove – Albin

1

Można zrobić wszystkie obiekty w publicznej wiadra. Oto link.

+0

Guys this Wygląda jak odpowiedź. Właśnie sprawdziłem uprawnienia do wiaderek. Zmieniłem obraz i ponownie przesłałem, a Google Storage nie zepsuł uprawnień, tak jak to miało miejsce wcześniej. Uruchomiłem to polecenie: gsutil iam ch allUsers: objectViewer gs: // [BUCKET_NAME]. Na wszelki wypadek zastanawiasz się, czy Amazon jest nadal w czołówce, aby takie rzeczy były łatwe. Wow, za dużo nauki, żeby zrobić to samo na GS. – Darian311

1

Aby skopiować i wkleić w imieniu Erika, ten pracował konsekwentnie do mnie:

Making grupy obiektów publicznie czytelny

aby wszystkie obiekty w wiadrze publicznie czytelny:

CONSOLEGSUTILREST APIS Użyj polecenia gsutil iam ch, zastępując [VALUES_IN_BRACKETS] odpowiednimi wartościami:

gsutil iam ch allUsers:objectViewer gs://[BUCKET_NAME] 
2

Aktualny (październik/2017) dokumentację o Hosting statycznych stron znalezionych here punkty:

gsutil acl ch -r -u AllUsers:R gs://bucket-name

Jeżeli -r Czy rekurencyjny trik i -u AllUsers:R daje publicznego dostępu odczytu.