Buckets, Objekte und ACLs
Ein Bucket ist der Speicherort, aus dem Sie Dateien lesen und in den Sie Dateien schreiben. Sie müssen immer einen Bucket angeben, wenn Sie die App Engine-Clientbibliothek für Cloud Storage verwenden. Ihr Projekt kann auf mehrere Buckets zugreifen. Die Clientbibliothek unterstützt allerdings nicht das Erstellen von Buckets.
Zugriffssteuerungslisten (Access Control Lists, ACLs) steuern den Zugriff auf die Buckets und die darin enthaltenen Objekte. Wenn Sie einen Bucket in Ihrem Projekt erstellen, werden Ihr Projekt und Ihre App Engine-Anwendung automatisch der ACL hinzugefügt, die den Bucket-Zugriff zulässt.
Die ACL, die den Zugriff auf den Bucket zulässt, ist nur eine der möglicherweise zahlreichen ACLs, die die Objekte in diesem Bucket verwalten. Daher hat Ihre Anwendung zwar Lese- und Schreibberechtigungen für die Buckets, für die sie aktiviert ist, vollständige Rechte jedoch nur für die Objekte, die sie selbst im Bucket erstellt. Der Zugriff Ihrer Anwendung auf Objekte, die von anderen Anwendungen oder Personen erstellt wurden, ist auf die Rechte beschränkt, die der Ersteller der Objekte Ihrer Anwendung gewährt hat.
Wenn ein Objekt im Bucket erstellt wird, ohne dass explizit eine ACL definiert wurde, wird die Standardobjekt-ACL verwendet, die der Bucket-Inhaber dem Bucket zugewiesen hat. Hat der Bucket-Inhaber keine Standardobjekt-ACL angegeben, greift der Objektstandard public-read
. Dies bedeutet, dass jeder Nutzer mit Zugriff auf den Bucket das Objekt lesen kann.
ACLs und die Clientbibliothek
Eine Anwendung, die die Clientbibliothek verwendet, kann die Bucket-ACL nicht ändern, jedoch eine ACL angeben, die den Zugriff auf die von ihr erstellten Objekte steuert. Die verfügbaren ACL-Einstellungen werden in der Dokumentation zur Methode „open“ beschrieben.Cloud Storage-Objekte ändern
Nachdem Sie ein Objekt in einem Bucket erstellt haben, können Sie es nicht mehr ändern oder ergänzen. Stattdessen müssen Sie das Objekt mit einem neuen Objekt desselben Namens überschreiben, das Ihre gewünschten Änderungen enthält.
Cloud Storage und Unterverzeichnisse
Mit der App Engine-Clientbibliothek für Cloud Storage können Sie beim Erstellen eines Objekts Trennzeichen für Unterverzeichnisse angeben, es gibt jedoch keine echten Unterverzeichnisse in Cloud Storage. In Cloud Storage ist ein Unterverzeichnis vielmehr ein Teil des Objektdateinamens.
Wenn beispielsweise ein Objekt somewhere/over/the/rainbow.mp3
erstellt wird, gehen Sie vermutlich davon aus, dass die Datei rainbow.mp3
im Unterverzeichnis somewhere/over/the/
gespeichert wird. Stattdessen wird als Objektname aber somewhere/over/the/rainbow.mp3
festgelegt.
Dieses Konzept spielt eine wichtige Rolle, wenn Sie die listbucket
-Filterung verwenden.
Wenn das oben aufgeführte Auflistungsverhalten für Sie nicht optimal ist, bietet listbucket
einen optionalen Verzeichnisemulationsmodus. Weitere Informationen finden Sie unter listbucket.