Auf dieser Seite wird beschrieben, wie Sie in Cloud Storage Objekte aus Buckets löschen. Einen Überblick über die Methoden zur Objektlöschung finden Sie unter Über die Objektlöschung.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für den Bucket zuzuweisen, der die zu löschenden Objekte enthält, um die Berechtigungen zu erhalten, die Sie zum Löschen benötigen:
-
Objekte mit der Google Cloud CLI oder REST APIs löschen:
Storage Object User (
roles/storage.objectUser) -
Objekte über die Google Cloud Konsole löschen:
Storage-Administrator (
roles/storage.admin) -
Alternativ können Sie Objekte über die Google Cloud -Konsole löschen:
Betrachter (
roles/viewer) und Storage-Objekt-Nutzer (roles/storage.objectUser)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Löschen von Objekten erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind zum Löschen von Objekten erforderlich:
-
Objekte löschen:
storage.objects.delete -
So listen Sie Objekte mit der Google Cloud Console oder mit dem Flag
--recursiveoder Platzhaltern in der Google Cloud CLI auf:storage.objects.list -
So listen Sie Buckets über die Google Cloud Console auf:
storage.buckets.list
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Einzelnes Objekt löschen
In diesem Abschnitt wird beschrieben, wie Sie jeweils ein Objekt löschen.
So löschen Sie ein einzelnes Objekt:
Console
- Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.
Klicken Sie in der Liste der Buckets auf den Bucket, der die Objekte enthält, die Sie löschen möchten.
Die Seite Bucket-Details wird geöffnet und der Tab Objekte ist ausgewählt.
Wechseln Sie zu dem Objekt. Dieses befindet sich möglicherweise in einem Ordner.
Klicken Sie auf das Kästchen neben dem Objekt, das Sie löschen möchten.
Klicken Sie auf Löschen und dann im angezeigten Dialogfeld noch einmal auf Löschen.
Befehlszeile
Verwenden Sie den Google Cloud CLI-Befehl gcloud storage rm:
gcloud storage rm gs://BUCKET_NAME/OBJECT_NAME
Dabei gilt:
BUCKET_NAMEist der Name des Buckets, der das zu löschende Objekt enthält. Beispiel:my-bucket.OBJECT_NAMEist der Name des Objekts, das Sie löschen möchten. Beispiel:pets/dog.png.
Wenn der Vorgang erfolgreich war, sieht die Antwort in etwa so aus:
Removing objects: Removing gs://example-bucket/file.txt... Completed 1/1
Clientbibliotheken
C++
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C++ API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
C#
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C# API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Go
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Go API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Java
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Java API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Node.js
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Node.js API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
PHP
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage PHP API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Python
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Python API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Ruby
Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Ruby API.
Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Rust
REST APIs
JSON-API
Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den
Authorization-Header zu generieren.Verwenden Sie
curl, um die JSON API mit einerDELETE-Anfrage aufzurufen:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
Dabei gilt:
BUCKET_NAMEist der Name des Buckets, der das zu löschende Objekt enthält. Beispiel:my-bucket.OBJECT_NAMEist der URL-codierte Name des Objekts, das Sie löschen möchten. Beispiel:pets/dog.png, URL-codiert alspets%2Fdog.png.
XML API
Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den
Authorization-Header zu generieren.Verwenden Sie
curl, um die XML API mit einerDELETE Object-Anfrage aufzurufen:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
Dabei gilt:
BUCKET_NAMEist der Name des Buckets, der das zu löschende Objekt enthält. Beispiel:my-bucket.OBJECT_NAMEist der URL-codierte Name des Objekts, das Sie löschen möchten. Beispiel:pets/dog.png, URL-codiert alspets%2Fdog.png.
Objekte im Bulk löschen
In diesem Abschnitt wird beschrieben, wie Sie Objekte im Bulk löschen, indem Sie sie in derGoogle Cloud -Konsole auswählen, Objekte mit einem gemeinsamen Präfix mit Befehlszeilentools löschen oder eine Liste von Objekten in API- oder Clientbibliotheksanfragen angeben.
Console
- Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.
Klicken Sie in der Liste der Buckets auf den Bucket, der die Objekte enthält, die Sie löschen möchten.
Die Seite Bucket-Details wird geöffnet und der Tab Objekte ist ausgewählt.
Wechseln Sie zu den Objekten. Diese befinden sich möglicherweise in einem Ordner.
Klicken Sie auf das Kästchen für jedes Objekt, das Sie löschen möchten.
Sie können das Kontrollkästchen für einen Ordner aktivieren, wodurch alle in diesem Ordner enthaltenen Objekte gelöscht werden.
Klicken Sie auf Löschen und dann im angezeigten Dialogfeld noch einmal auf Löschen.
Wenn Sie viele Objekte gleichzeitig löschen, können Sie den Löschfortschritt verfolgen. Klicken Sie dazu in der Google Cloud Console auf das Symbol Benachrichtigungen. DieGoogle Cloud Console kann im Hintergrund bis zu mehrere Millionen Objekte im Bulk löschen.
Unter Fehlerbehebung erfahren Sie, wie Sie detaillierte Fehlerinformationen zu fehlgeschlagenen Cloud Storage-Vorgängen in der Google Cloud Console abrufen.
Befehlszeile
Google Cloud CLI
Wenn Sie Gruppen von Objekten mit demselben Präfix löschen möchten, z. B. Objekte, deren Namen eine Ordnerstruktur nachahmen, verwenden Sie das Flag --recursive mit gcloud storage rm:
gcloud storage rm --recursive gs://BUCKET_NAME/PREFIX
Wobei:
BUCKET_NAMEist der Name des Buckets. Beispiel:my-bucket.PREFIXist das gemeinsame Präfix der Objekte, die Sie löschen möchten. Beispiel:pets/.
Amazon S3-Befehlszeile
Wenn Sie mehrere Objekte in Cloud Storage mit der Amazon S3-CLI löschen möchten, verwenden Sie den Befehl aws s3api delete-objects. Sie müssen die Anfrage an die XML API zum Löschen mehrerer Objekte von Cloud Storage weiterleiten, indem Sie das Flag --endpoint-url auf storage.googleapis.com setzen. Ausführliche Parameterdefinitionen und Informationen zum Verhalten der delete-objects API finden Sie in der Amazon S3 CLI-Referenzdokumentation zu „delete-objects“.
Clientbibliotheken
Cloud Storage unterstützt die XML API zum Löschen mehrerer Objekte über die Amazon S3-kompatible Schnittstelle.
Um Amazon S3-kompatible Clientbibliotheken für die Massenlöschung von Objekten zu verwenden, richten Sie Ihre Anfrage an den Google Cloud -Endpunkt, indem Sie die Endpunkt-URL in der Clientkonfiguration auf https://storage.googleapis.com setzen. Dieser Ansatz kann hilfreich sein, wenn Sie eine der folgenden Aufgaben ausführen:
- Vorhandene Codebases oder Tools nutzen, die bereits für Amazon S3 entwickelt wurden.
- Konsistenz in Multi-Cloud-Umgebungen mit Amazon S3 und Cloud Storage aufrechterhalten
Das folgende Beispiel zeigt, wie ein Client mit einer Boto3-Bibliothek initialisiert wird, um mit Cloud Storage zu interagieren:
import boto3
def main():
# Initialize the S3 client to point to the Google Cloud Storage endpoint
client = boto3.client(
service_name='s3',
endpoint_url='https://storage.googleapis.com',
aws_access_key_id='YOUR_ACCESS_ID',
aws_secret_access_key='YOUR_SECRET',
)
# Perform delete operations as defined in the library's documentation
# response = client.delete_objects(Bucket='BUCKET_NAME', Delete={'Objects': [...]})
Spezifische Methodensignaturen und Parameterdefinitionen finden Sie in der Boto3-Dokumentation für delete_objects.
XML API
So löschen Sie mit der XML API bis zu 1.000 Objekte in einer einzigen Anfrage:
Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den
Authorization-Header zu generieren.Erstellen Sie ein XML-Dokument, in dem die zu löschenden Objekte angegeben sind.
Eine vollständige Liste der Einstellungen finden Sie in der XML API-Referenzdokumentation unter Mehrere Objekte löschen. Die allgemeinen Einstellungen, die Sie in Ihre XML-Datei aufnehmen sollten, sind:
<Delete> <Object> <Key>OBJECT_NAME</Key> <VersionId>VERSION_ID</VersionId> </Object> ... <Quiet>QUIET_RESPONSE_BOOLEAN</Quiet> </Delete>Wobei:
OBJECT_NAMEist der URL-codierte Name des Objekts. Beispiel:pets/dog.png, URL-codiert alspets%2Fdog.png. Sie können bis zu 1.000 Objekte in der XML-Datei angeben.VERSION_IDist die Versions-ID für das Objekt. Beispiel:11111QUIET_RESPONSE_BOOLEANsteuert die Ausführlichkeit der API-Antwort:- Setzen Sie den Wert auf
False, um eine ausführliche Antwort zu erhalten. Die Antwort enthält Details zu jedem Objekt, unabhängig davon, ob es erfolgreich gelöscht wurde oder nicht. Der Vorgang zum Löschen mehrerer Objekte mit der XML API ist nicht atomar. Wenn eine Anfrage zu teilweisen Fehlern führt, werden einige Objekte möglicherweise erfolgreich gelöscht, andere jedoch nicht. Wir empfehlen daher, die ausführliche Antwort zu verwenden, um alle Objektlöschungen zu identifizieren. Wenn Sie Audit-Logs zum Datenzugriff aktiviert haben, können Sie auch Audit-Logs mit Fehlerdetails aufrufen. - Legen Sie
Truefür eine ruhige Antwort fest. Der Antworttext enthält keine Informationen über die erfolgreich gelöschten Objekte.
- Setzen Sie den Wert auf
Verwenden Sie
curl, um einePOST-Bucket-Anfrage mit dem Abfrageparameter?deleteund Ihrer XML-Datei an die XML API zu senden:curl -X POST --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?delete"
Wobei:
XML_FILE_NAMEist der Name der XML-Datei, die Sie erstellt haben.BUCKET_NAMEist der Name des Buckets, der die zu löschenden Objekte enthält.Wenn der Modus
Quietdeaktiviert ist, könnte eine ausführliche Antwort so aussehen:<DeleteResult> <Deleted> <Key>images/photo1.jpg</Key> <VersionId>11111</VersionId> </Deleted> <Deleted> <Key>documents/report.pdf</Key> <VersionId>22222</VersionId> </Deleted> <Error> <Code>AccessDenied</Code> <Key>private/financial_data.xlsx</Key> <Message>Access Denied. You don't have permission to delete this object.</Message> <VersionId>33333</VersionId> </Error> </DeleteResult>
Wenn der Modus
Quietaktiviert ist, werden in der Antwort nur Objekte aufgeführt, die nicht gelöscht werden konnten. Wenn alle Objekte erfolgreich gelöscht wurden, wird ein leeres<DeleteResult/>-Tag zurückgegeben. Im Folgenden sehen Sie ein Beispiel für eine stille Antwort, bei der ein Fehler aufgetreten ist:<DeleteResult> <Error> <Code>AccessDenied</Code> <Key>private/financial_data.xlsx</Key> <Message>Access Denied. You don't have permission to delete this object.</Message> <VersionId>33333</VersionId> </Error> </DeleteResult>
Bis zu Milliarden von Objekten löschen
Wenn Sie Millionen oder Milliarden von Objekten mit einem einzigen Objektlöschjob löschen möchten, verwenden Sie Storage-Batchvorgänge. Geben Sie zum Erstellen eines Jobs die zu löschenden Objekte an. Dazu können Sie entweder eine Liste von Objekten in einer Manifestdatei oder Objektpräfixe verwenden. Nachdem Sie die Objektliste angegeben haben, erstellen Sie einen Batchvorgangsjob, um die Objekte zu löschen.
Objekte mithilfe von Objektlebenszyklusregeln automatisch löschen
Wenn Objekte automatisch gelöscht werden sollen, wenn sie von Ihnen angegebene Kriterien wie Alter oder Speicherklasse erfüllen, verwenden Sie die Verwaltung des Objektlebenszyklus. Beispielsweise können Sie eine Lebenszyklusregel festlegen, die Protokolle löscht, die älter als 30 Tage sind.
Löschanfragen für Objekte mit der JSON API im Batchverfahren senden
Wenn Sie viele Objekte mit der JSON API löschen, können Sie die Anzahl der erforderlichen HTTP-Verbindungen mit JSON API-Batchanfragen reduzieren. Sie können bis zu 100 API-Aufrufe in einer einzigen HTTP-Anfrage zusammenfassen, um den Netzwerkaufwand zu reduzieren.
Nächste Schritte
- Vorläufig gelöschte Objekte wiederherstellen
- Wenn Sie die Objektversionsverwaltung verwenden, sollten Sie sich darüber im Klaren sein, dass das Löschen eines Objekts dazu führen kann, dass es nicht mehr aktuell ist, anstatt es endgültig zu löschen. Lerne, wie manNicht mehr aktuelle Versionen verwalten oder endgültig löschen Die
- Konfigurieren Sie die Verwaltung des Objektlebenszyklus, um das Löschen von Objekten in Zukunft zu automatisieren.
- Löschen Sie einen Bucket, wenn Sie ihn nicht mehr benötigen.