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?
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?
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:
PUT /bucket/obj?acl HTTP/1.1
Host: storage.googleapis.com
x-goog-acl: public-read
Sie können dies sehen, indem Sie die -D
Flagge verwenden mit gsutil
:
gsutil -D setacl public-read gs://bucket/obj
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
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 .
- Öffnen Sie den Cloud-Speicherbrowser in der Google Cloud Platform Console.
- Klicken Sie in der Liste der Buckets auf den Namen des Buckets, den Sie veröffentlichen möchten.
- Wählen Sie die Registerkarte Berechtigungen oben auf der Seite.
- Klicken Sie auf die Schaltfläche Mitglieder hinzufügen.
Das Dialogfeld Mitglieder hinzufügen wird angezeigt.- Geben Sie im Feld Mitglieder allUsers ein.
- Wählen Sie in der Dropdown-Liste Rollen das Untermenü Speicher aus und klicken Sie auf die Option Speicherobjekt-Viewer.
- Klicken Sie auf Hinzufügen.
Nach der öffentlichen Freigabe wird für jedes Objekt in der Spalte Öffentlicher Zugriff> ein Verknüpfungssymbol angezeigt. Sie können auf dieses Symbol klicken, um die URL für das Objekt abzurufen.
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. Dann Select Role
> Storage
>Storage Object Viewer
Beachtung! Dadurch erhalten alle Personen im Internet Leseberechtigung für alle Objekte in diesem ausgewählten Bucket.
Das Kopieren und Einfügen in Eriks Namen funktionierte für mich konsequent:
Gruppen von Objekten öffentlich lesbar machen
So machen Sie alle Objekte in einem Eimer öffentlich lesbar:
CONSOLEGSUTILREST APIS Verwenden Sie den Befehl gsutil iam ch und ersetzen Sie [VALUES_IN_BRACKETS] durch die entsprechenden Werte:
gsutil iam ch allUsers:objectViewer gs://[BUCKET_NAME]