Auf dieser Seite wird beschrieben, wie Sie in Cloud Storage Objekte aus Buckets löschen. Eine Übersicht über die Methoden zum Löschen von Objekten finden Sie unter Informationen zum Löschen von Objekten.
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-Objekt-Nutzer (
roles/storage.objectUser) -
Objekte mit der Google Cloud -Konsole löschen: Storage-Administrator (
roles/storage.admin) -
Alternativ können Sie Objekte über die Google Cloud Console 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 -
Objekte mit der Google Cloud Console oder mit dem Flag
--recursiveoder Platzhaltern in der Google Cloud CLI auflisten:storage.objects.list -
Buckets mit der Google Cloud Console auflisten:
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 Objekte einzeln 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 gelöscht werden soll.
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
Installieren und initialisieren Sie die gcloud CLI, 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
Installieren und initialisieren Sie die gcloud CLI, 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. Dazu wählen Sie sie in derGoogle Cloud Console aus, löschen Objekte mit einem gemeinsamen Präfix mithilfe von Befehlszeilentools oder geben eine Liste von Objekten in API- oder Clientbibliotheksanfragen an.
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 das Kästchen für jedes Objekt an, das Sie löschen möchten.
Sie können das Kästchen für einen Ordner anklicken, um alle darin enthaltenen Objekte zu löschen.
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-CLI
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. Setzen Sie dazu das Flag --endpoint-url auf storage.googleapis.com. Detaillierte Parameterdefinitionen und das Verhalten der delete-objects API finden Sie in der Referenzdokumentation zur Amazon S3-CLI für „delete-objects“.
Clientbibliotheken
Cloud Storage unterstützt die XML API zum Löschen mehrerer Objekte über die Amazon S3-kompatible Schnittstelle.
Wenn Sie Amazon S3-kompatible Clientbibliotheken für das Löschen von Bulk-Objekten verwenden möchten, richten Sie Ihre Anfrage an den Endpunkt Google Cloud . Legen Sie dazu die Endpunkt-URL in der Clientkonfiguration auf https://storage.googleapis.com fest. Dieser Ansatz kann nützlich sein, wenn Sie eine der folgenden Aufgaben ausführen:
- Nutzung vorhandener Codebasen oder Tools, die bereits für Amazon S3 erstellt wurden.
- Konsistenz in Multi-Cloud-Umgebungen mit Amazon S3 und Cloud Storage aufrechterhalten
Im folgenden Beispiel wird gezeigt, wie Sie einen Client mit einer Boto3-Bibliothek initialisieren, um mit Cloud Storage zu interagieren:
import boto3
def main():
# Initialize the S3 client to point to the 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 delete_objects-Boto3-Dokumentation.
XML API
So löschen Sie mit der XML API bis zu 1.000 Objekte in einer einzelnen Anfrage:
Installieren und initialisieren Sie die gcloud CLI, 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. Folgende Einstellungen können in der XML-Datei verwendet werden:
<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 in der XML-Datei bis zu 1.000 Objekte angeben.VERSION_IDist die Versions-ID für das Objekt. Beispiel:11111QUIET_RESPONSE_BOOLEANsteuert die Ausführlichkeit der API-Antwort:- Legen Sie
Falsefür eine ausführliche Antwort fest. Die Antwort enthält Details zu jedem Objekt, unabhängig davon, ob es erfolgreich gelöscht wurde oder nicht. Der Löschvorgang für mehrere 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 die Audit-Logs auf Fehlerdetails prüfen. - Legen Sie
Truefür eine kurze Antwort fest. Der Antworttext enthält keine Informationen zu den erfolgreich gelöschten Objekten.
- Legen Sie
Verwenden Sie
curl, um einePOST-Bucket-Anfrage mit dem Suchparameter?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 von Ihnen erstellten XML-Datei.BUCKET_NAMEist der Name des Buckets, der die zu löschenden Objekte enthält.Wenn der
Quiet-Modus deaktiviert 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
Quiet-Modus aktiviert 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. Hier ist ein Beispiel für eine Antwort im Quiet-Modus, 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. Wenn Sie einen Job erstellen möchten, geben Sie die zu löschenden Objekte an. Dazu können Sie entweder eine Liste von Objekten in einer Manifestdatei bereitstellen 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 Sie möchten, dass Objekte automatisch gelöscht werden, wenn sie von Ihnen festgelegte Kriterien wie Alter oder Speicherklasse erfüllen, verwenden Sie die Verwaltung des Objektlebenszyklus. Sie können beispielsweise eine Lebenszyklusregel festlegen, um Logs zu löschen, die älter als 30 Tage sind.
Anfragen zum Löschen von Batchobjekten mit der JSON API
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 Netzwerk-Overhead zu reduzieren.
Nächste Schritte
- Vorläufig gelöschte Objekte wiederherstellen, wenn Sie ein Objekt versehentlich gelöscht haben
- Wenn Sie die Objektversionsverwaltung verwenden, beachten Sie, dass das Löschen eines Objekts dazu führen kann, dass es nicht mehr aktuell ist, anstatt es endgültig zu löschen. Informationen zum Verwalten oder endgültigen Löschen nicht aktueller Versionen
- Konfigurieren Sie die Verwaltung des Objektlebenszyklus, um zukünftige Objektlöschungen zu automatisieren.
- Löschen Sie einen Bucket, wenn Sie ihn nicht mehr benötigen.