Sichtbarkeit und Zugriff von Buckets

Erfahren Sie, wie private und öffentliche Buckets und signierte Links funktionieren, wer Buckets verwalten darf und wann Sie den Temp-URL-Schlüssel erneuern.

Wer die Objekte eines Buckets lesen kann, hängt von drei Dingen ab: der Sichtbarkeit des Buckets, den Rollen der Personen und Tokens, die Ihr Projekt verwenden, und den signierten Links, die die Konsole und die API für einzelne Objekte erstellen.

Rollen und API-Tokens

Der Zugriff Ihrer Rolle auf Block & Object Storage, auf Abonnement- oder Projektebene, bestimmt, was Sie mit Buckets tun können. Benutzerdefinierte Rollen funktionieren genauso wie die integrierten Rollen in den Beispielen:

Zugriff auf Block & Object StorageWas Sie tun können
Verwalten, wie in den Rollen Besitzer und MitwirkenderBuckets erstellen, ändern und löschen; Objekte hochladen und löschen; den Temp-URL-Schlüssel erneuern.
Lesen, wie in der Rolle LeserBuckets und ihre Einstellungen anzeigen, Objektlisten durchsuchen und aktualisieren und Objekte herunterladen.
Keiner, wie in der Rolle AbrechnungsoperatorKein Zugriff auf Buckets.

API-Tokens benötigen den Bereich storage:read, um Buckets zu lesen und Objekte herunterzuladen, und den Bereich storage:write für jede Änderung. Ein Berichtsjob, der nur Dateien herunterlädt, benötigt z. B. ein Token, das nur storage:read hat. Siehe Dienstkonten und API-Tokens.

Private und öffentliche Buckets

Sie wählen, ob ein Bucket privat oder öffentlich ist. Ein neuer Bucket ist privat, sofern Sie nichts anderes wählen.

  • Privat. Die Objekte des Buckets können nur mit Zugriff auf Ihr Projekt gelesen werden, z. B. über die Konsole, die API oder einen signierten Link.
  • Öffentlich. Jeder im Internet kann jedes Objekt im Bucket lesen und seinen Inhalt auflisten, ohne Anmeldedaten. Hochladen und Löschen erfordern weiterhin Zugriff auf Ihr Projekt.

Machen Sie z. B. einen Bucket öffentlich, um die Bilder einer öffentlichen Website bereitzustellen, und halten Sie alles andere privat.

Die Sichtbarkeit gilt für den gesamten Bucket. Sie können kein einzelnes Objekt öffentlich machen.

Sichtbarkeit eines Buckets ändern

Wechseln Sie in der Konsole zu SpeicherObjektspeicher, und wählen Sie den Namen des Buckets aus.

Wählen Sie oben auf der Seite Öffentlich machen oder Privat machen aus.

Um den Bucket öffentlich zu machen, lesen Sie die Warnung, und wählen Sie Öffentlich machen aus. Wenn Sie einen Bucket privat machen, wird keine Bestätigung abgefragt.

Die Sichtbarkeit des Buckets ändert sich in der Konsole sofort, und der Object Store wendet sie im Hintergrund an. Die Registerkarte Aktivität des Buckets listet die Änderung als Vorgang mit ihrem Ergebnis auf.

Über die API

Um einen Bucket mit PATCH/scopes/{scopeId}/storage/buckets/{bucketId}/policies öffentlich zu machen, senden Sie "visibility": "Public" und, sofern der Bucket es nicht bereits hat, "blockPublicPolicy": false in derselben Anfrage. Eine öffentliche Sichtbarkeit, während blockPublicPolicy aktiviert ist, wird mit 409 abgelehnt. Die Konsole sendet beides für Sie.

Ein signierter Link ist eine URL, die eine Aktion für ein Objekt erlaubt: einen Upload (PUT) oder einen Download (GET). Er läuft 15 Minuten nach seiner Erstellung ab. Ein signierter Link erfordert keine Anmeldung, daher kann jeder, der ihn hat, ihn bis zu seinem Ablauf verwenden. Behandeln Sie ihn wie ein Passwort.

  • In der Konsole. Jeder Upload und Download verwendet einen eigenen signierten Link. Ihr Browser sendet die Daten direkt an den Object Store oder empfängt sie direkt von ihm.
  • Über die API. POST/scopes/{scopeId}/storage/buckets/{bucketId}/uploads gibt einen signierten Upload-Link für einen Schlüssel zurück, und POST/scopes/{scopeId}/storage/buckets/{bucketId}/exports gibt einen signierten Download-Link für ein Objekt in der Bucket-Liste zurück. Jede Antwort nennt den Ablauf des Links in expiresAt. Die Upload-Anfrage benötigt storage:write; die Download-Anfrage benötigt storage:read.

Die Konsole hat keine Aktion, um einen Link zu einem Objekt zu teilen.

Signierte Links werden mit dem Temp-URL-Schlüssel Ihres Projekts signiert. Die Plattform erstellt den Schlüssel, wenn sie zum ersten Mal einen Link signiert.

Wenn der Plattformbetreiber Ihren Mandanten aussetzt, funktionieren signierte Links nicht mehr. Nachdem der Betreiber den Mandanten wieder aktiviert hat, funktionieren Links, die noch nicht abgelaufen sind, wieder.

Temp-URL-Schlüssel erneuern

Wenn ein Mitglied ausscheidet, erneuern Sie den Schlüssel. Das Erneuern macht jeden signierten Link ungültig.

Nachdem ein Mitglied aus Ihrem Mandanten entfernt wurde, zeigt die Seite von Object Storage einen Hinweis an, der Ihnen empfiehlt, den Schlüssel zu erneuern. So erneuern Sie den Schlüssel:

Wechseln Sie in der Konsole zu SpeicherObjektspeicher.

Wählen Sie im Hinweis Schlüssel erneuern aus.

Lesen Sie die Bestätigung, und wählen Sie Schlüssel erneuern aus.

Achtung

Alle mit dem aktuellen Schlüssel signierten Links — auch von anderen Mitgliedern geteilte — funktionieren sofort nicht mehr. Danach in der Konsole erstellte Links funktionieren weiter. Sie können den alten Schlüssel nicht wiederherstellen.

Die Erneuerung ersetzt alle Temp-URL-Schlüssel des Projekts durch einen neuen Schlüssel. Wenn die Erneuerung erfolgreich ist, verschwindet der Hinweis. Mit der Rolle Leser sehen Sie den Hinweis ohne die Schaltfläche.

Sie können den Schlüssel jederzeit über POST/scopes/{scopeId}/storage/temp-url-key/actions/rotate erneuern.

Browserzugriff von anderen Origins

Damit Skripte auf Webseiten von anderen Origins einen Bucket aufrufen können, fügen Sie CORS-Regeln hinzu, die diese Origins erlauben. Siehe CORS-Regeln konfigurieren.

Auf dieser Seite