Ich habe 1000 Dateien in Google Cloud Storage, die veröffentlicht werden sollen, oder allgemein eine Verzeichnishierarchie.
In der Web-Benutzeroberfläche kann ich scheinbar jeweils nur eine öffentlich machen.
Gibt es eine Möglichkeit, dies zu tun?
cloud
google-cloud-storage
Ingenieurchuan
quelle
quelle
Antworten:
Lauf
gsutil -m acl set -R -a public-read gs://bucket
-m
gibt mehrere Anfragen gleichzeitig aus.-R
Ausgabe fordert für jedes Objekt in Ihrem Bucket.-a
Ausgabe fordert für jede Version jedes Objekts.Siehe
gsutil help acl
für weitere Informationen.Auf der API-Ebene gibt gsutil die folgende HTTP-Anforderung aus:
Sie können dies sehen, indem Sie die
-D
Flagge verwenden mitgsutil
:quelle
Beim Ausführen:
gsutil -m acl set -R -a public-read gs://bucket
Sie definieren public read für alle Objekte, die sich derzeit in Ihrem Bucket befinden. Wenn Sie jedoch neue Dateien hochladen, sind diese standardmäßig nicht öffentlich.Was ich gefunden habe, ist, dass es sich lohnt, eine Bucket-Standard-ACL als öffentlich lesbar zu definieren
gsutil defacl set public-read gs://bucket
quelle
gsutil defacl set public-read gs://bucket
funktioniert mit allen zukünftigen Dateien, einschließlich der in Unterverzeichnissen. Ignoriere den Kommentar von Plastly Grove.Sie können alle Objekte in einem Bucket öffentlich machen. Hier ist der Link .
quelle
Der einfachste Weg, dies zu erreichen, wäre die Verwendung einer Konsole.
Klicken Sie auf "Bucket-Berechtigungen bearbeiten".
Geben
allUsers
Sie unter Mitglieder hinzufügen ein. DannSelect Role
>Storage
>Storage Object Viewer
Beachtung! Dadurch erhalten alle Personen im Internet Leseberechtigung für alle Objekte in diesem ausgewählten Bucket.
quelle
Die aktuelle Dokumentation (Oktober / 2017) zum Hosten einer statischen Website, die hier zu finden ist, verweist auf:
gsutil acl ch -r -u AllUsers:R gs://bucket-name
Wo
-r
macht das den rekursiven Trick und-u AllUsers:R
gibt der Öffentlichkeit Lesezugriff.quelle
gsutil acl ch -r -u AllUsers:R gs://bucket-name/dir-name
-m
wird es nach -gsutil -m acl ch -r -u AllUsers:R gs://bucket-name/dir-name
Das Kopieren und Einfügen in Eriks Namen funktionierte für mich konsequent:
quelle