Auf dieser Seite wird gezeigt, wie Sie Objekte in bzw. zwischen Buckets in Cloud Storage kopieren, umbenennen und verschieben.
Obwohl einige Tools in Cloud Storage dafür sorgen, dass das Verschieben oder Umbenennen eines Objekts ein einzelner Vorgang ist, handelt es sich immer um einen Kopiervorgang gefolgt von einem Löschvorgang des ursprünglichen Objekts, da Objekte unveränderlich sind.
Objekt kopieren
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die Rolle „Storage-Objekt-Betrachter“ (roles/storage.objectViewer
) für den Quell-Bucket und die Rolle „Storage-Objekt-Nutzer“ (roles/storage.objectUser
) für den Ziel-Bucket zuzuweisen, um die erforderlichen Berechtigungen zum Kopieren eines Objekts zu erhalten. Wenn Sie die Google Cloud Console verwenden möchten, bitten Sie Ihren Administrator, Ihnen zusätzlich zu den Rollen „Storage-Objekt-Betrachter“ und „Storage-Objekt-Nutzer“ die einfache Rolle „Betrachter“ für die Projekte zuzuweisen, die die Quell- und Ziel-Buckets enthalten.
Diese Rollen enthalten die folgenden Berechtigungen, die zum Kopieren eines Objekts erforderlich sind:
storage.objects.get
für den Quell-Bucketstorage.objects.create
für den Ziel-Bucketstorage.objects.delete
für den Ziel-Bucket (nur erforderlich, wenn ein Objekt überschrieben wird)
Wenn Sie die Google Cloud Console verwenden, benötigen Sie außerdem die folgenden Berechtigungen:
storage.objects.list
für den Quell- und Ziel-Bucketstorage.buckets.list
für die Projekte, die die Quell- und Ziel-Buckets enthalten
Wenn für das Objekt, das Sie kopieren möchten, Funktionen aktiviert sind, benötigen Sie möglicherweise alternative Rollen. Wenn das Objekt, das Sie kopieren möchten, beispielsweise eine Aufbewahrungskonfiguration hat, die beibehalten werden soll, benötigen Sie eine Rolle für den Ziel-Bucket, die die Berechtigung storage.objects.setRetention
enthält, z. B. die Rolle „Storage-Objekt-Administrator“ (roles/storage.objectAdmin
).
Sie können diese Berechtigungen möglicherweise mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Eine Anleitung zum Zuweisen von Rollen für Buckets finden Sie unter IAM mit Buckets verwenden.
Eine Anleitung zum Zuweisen von Rollen für Projekte finden Sie unter Zugriff auf Projekte verwalten.
So kopieren Sie ein Objekt in einen Ihrer Cloud Storage-Buckets:
- Wechseln Sie in der Cloud Console zur Seite Cloud Storage-Buckets.
Klicken Sie in der Liste der Buckets auf den Bucket, der das Objekt enthält, das Sie kopieren 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 Dreipunkt-Menü more_vert des Objekts.
Klicken Sie auf Kopieren.
Der Bereich Objekt kopieren wird angezeigt.
Geben Sie im Feld Ziel den Namen des Ziel-Buckets und den Namen des kopierten Objekts ein.
Sie können auch auf Durchsuchen klicken, um Ihr Ziel auszuwählen, aber die Optionen zum Durchsuchen sind auf Buckets im aktuellen Projekt beschränkt.
Klicken Sie auf Kopieren.
Unter Fehlerbehebung erfahren Sie, wie Sie detaillierte Fehlerinformationen zu fehlgeschlagenen Cloud Storage-Vorgängen in der Google Cloud Console abrufen.
Führen Sie den Befehl gcloud storage cp
aus:
gcloud storage cp gs://SOURCE_BUCKET_NAME /SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME /NAME_OF_COPY
Dabei gilt:
SOURCE_BUCKET_NAME
ist der Name des Buckets mit dem Objekt, das Sie kopieren möchten. Beispiel:my-bucket
.SOURCE_OBJECT_NAME
ist der Name des Objekts, das Sie kopieren möchten. Beispiel:pets/dog.png
.DESTINATION_BUCKET_NAME
ist der Name des Buckets, in den Sie das Objekt kopieren möchten. Beispiel:another-bucket
NAME_OF_COPY
ist der Name, den Sie der Kopie des Objekts geben möchten. Beispiel:shiba.png
.
Wenn der Vorgang erfolgreich war, sieht die Antwort in etwa so aus:
Copying gs://example-bucket/file.txt to gs://other-bucket/file-copy.txt Completed files 1/1 | 164.3kiB/164.3kiB
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.
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.
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.
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.
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.
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.
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.
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.
Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header
Authorization
zu generieren.Verwenden Sie
cURL
, um die JSON API mit einerPOST
-Objektanfrage aufzurufen:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Length: 0" \ "https://storage.googleapis.com/storage/v1/b/
SOURCE_BUCKET_NAME /o/SOURCE_OBJECT_NAME /rewriteTo/b/DESTINATION_BUCKET_NAME /o/NAME_OF_COPY "Dabei gilt:
SOURCE_BUCKET_NAME
ist der Name des Buckets mit dem Objekt, das Sie kopieren möchten. Beispiel:my-bucket
SOURCE_OBJECT_NAME
ist der URL-codierte Name des Objekts, das Sie kopieren möchten. Beispiel:pets/dog.png
, URL-codiert alspets%2Fdog.png
.DESTINATION_BUCKET_NAME
ist der Name des Buckets, in den Sie das Objekt kopieren möchten. Beispiel:another-bucket
NAME_OF_COPY
ist der URL-codierte Name, den Sie der Kopie Ihres Objekts geben möchten. Beispiel:shiba.png
.
Da die
rewrite
-Methode einzelne Datenblöcke kopiert, können für Ihre Kopie mehrere Anfragen erforderlich sein, insbesondere bei großen Objekten.Die folgende Antwort auf eine
rewrite
-Anfrage zeigt beispielsweise an, dass Sie zusätzlicherewrite
-Anfragen senden müssen:{ "kind": "storage#rewriteResponse", "totalBytesRewritten": 1048576, "objectSize": 10000000000, "done": false, "rewriteToken":
TOKEN_VALUE }Verwenden Sie das
rewriteToken
in einer nachfolgenden Anfrage, um weitere Daten zu kopieren:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Length: 0" \ -d '{"rewriteToken": "
TOKEN_VALUE "}' \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME /o/SOURCE_OBJECT_NAME /rewriteTo/b/DESTINATION_BUCKET_NAME /o/NAME_OF_COPY "Dabei gilt:
TOKEN_VALUE
ist der in der vorherigen Anfrage zurückgegebenerewriteToken
-Wert.- Alle anderen Werte stimmen mit den Werten aus der vorherigen Anfrage überein.
Wenn das Objekt vollständig kopiert wurde, ist in der letzten Antwort das Attribut
done
auftrue
gesetzt und kein AttributrewriteToken
vorhanden. Außerdem sind die Metadaten der Kopie im Attributresource
enthalten.{ "kind": "storage#rewriteResponse", "totalBytesRewritten": 10000000000, "objectSize": 10000000000, "done": true, "resource": objects Resource }
Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header
Authorization
zu generieren.Verwenden Sie
cURL
, um die XML API mit einerPUT
-Objektanfrage aufzurufen:curl -X PUT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-copy-source:
SOURCE_BUCKET_NAME /SOURCE_OBJECT_NAME " \ "https://storage.googleapis.com/DESTINATION_BUCKET_NAME /NAME_OF_COPY "Dabei gilt:
SOURCE_BUCKET_NAME
ist der Name des Buckets mit dem Objekt, das Sie kopieren möchten. Beispiel:my-bucket
SOURCE_OBJECT_NAME
ist der Name des Objekts, das Sie kopieren möchten. Beispiel:pets/dog.png
.DESTINATION_BUCKET_NAME
ist der Name des Buckets, in den Sie das Objekt kopieren möchten. Beispiel:another-bucket
NAME_OF_COPY
ist der URL-codierte Name, den Sie der Kopie Ihres Objekts geben möchten. Beispiel:shiba.png
.
Objekte verschieben oder umbenennen
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die Rolle „Storage-Objekt-Nutzer“ (roles/storage.objectUser
) sowohl für den Quell- als auch für den Ziel-Bucket zuzuweisen, um die erforderlichen Berechtigungen zum Verschieben oder Umbenennen eines Objekts zu erhalten. Wenn Sie die Google Cloud Console verwenden möchten, bitten Sie Ihren Administrator, Ihnen zusätzlich zur Rolle „Storage-Objekt-Nutzer“ die einfache Rolle „Betrachter“ für die Projekte zuzuweisen, die die Quell- und Ziel-Buckets enthalten.
Diese Rollen enthalten die folgenden Berechtigungen, die zum Verschieben oder Umbenennen eines Objekts erforderlich sind:
storage.objects.delete
für den Quell-Bucket (auch für den Ziel-Bucket erforderlich, wenn ein Objekt überschrieben wird)storage.objects.get
für den Quell-Bucketstorage.objects.create
für den Ziel-Bucket
Wenn Sie die Google Cloud Console verwenden, benötigen Sie außerdem die folgenden Berechtigungen:
storage.objects.list
für den Quell- und Ziel-Bucketstorage.buckets.list
für die Projekte, die die Quell- und Ziel-Buckets enthalten
Wenn für das Objekt, das Sie verschieben oder umbenennen möchten, Funktionen aktiviert sind, benötigen Sie möglicherweise alternative Rollen. Wenn das Objekt, das Sie verschieben möchten, beispielsweise eine Objektaufbewahrungskonfiguration hat, benötigen Sie eine Rolle für den Ziel-Bucket, die die Berechtigung storage.objects.setRetention
enthält, z. B. die Rolle „Storage-Objekt-Administrator“ (roles/storage.objectAdmin
).
Sie können diese Berechtigungen möglicherweise mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Eine Anleitung zum Zuweisen von Rollen für Buckets finden Sie unter IAM mit Buckets verwenden.
Eine Anleitung zum Zuweisen von Rollen für Projekte finden Sie unter Zugriff auf Projekte verwalten.
So verschieben Sie ein Objekt in Cloud Storage zwischen Buckets oder benennen ein Objekt in einem Bucket um:
- Wechseln Sie in der Cloud Console zur Seite Cloud Storage-Buckets.
Klicken Sie in der Liste der Buckets auf den Namen des Buckets mit dem Objekt, das Sie verschieben oder umbenennen 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 Dreipunkt-Menü more_vert des Objekts.
Wenn Sie dem Objekt einen neuen Namen im selben Bucket geben möchten, klicken Sie auf Umbenennen.
Geben Sie im eingeblendeten Fenster einen neuen Namen für das Objekt ein.
Klicken Sie auf Umbenennen.
Wenn Sie das Objekt in einen anderen Bucket verschieben möchten, klicken Sie auf Verschieben.
Klicken Sie im eingeblendeten Fenster auf Durchsuchen.
Wählen Sie das Ziel für das Objekt aus, das Sie verschieben möchten.
Klicken Sie auf Auswählen.
Klicken Sie auf Verschieben.
Unter Fehlerbehebung erfahren Sie, wie Sie detaillierte Fehlerinformationen zu fehlgeschlagenen Cloud Storage-Vorgängen in der Google Cloud Console abrufen.
Führen Sie den Befehl gcloud storage mv
aus:
gcloud storage mv gs://SOURCE_BUCKET_NAME /SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME /DESTINATION_OBJECT_NAME
Dabei gilt:
SOURCE_BUCKET_NAME
ist der Name des Buckets mit dem Objekt, das Sie verschieben oder umbenennen möchten. Beispiel:my-bucket
SOURCE_OBJECT_NAME
ist der Name des Objekts, das Sie verschieben oder umbenennen möchten. Beispiel:pets/dog.png
.DESTINATION_BUCKET_NAME
ist der Name des Buckets, in dem das verschobene oder umbenannte Objekt gespeichert wird. Beispiel:another-bucket
DESTINATION_OBJECT_NAME
ist der Name, den das Objekt nach dem Verschieben oder Umbenennen haben soll. Beispiel:shiba.png
Wenn der Vorgang erfolgreich war, sieht die Antwort in etwa so aus:
Copying gs://example-bucket/old-file.txt to gs://new-bucket/new-file.txt Removing gs://example-bucket/old-file.txt... Completed files 1/1 | 164.3kiB/164.3kiB
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.
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.
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.
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.
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.
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.
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.
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.
Wenn Sie ein Objekt direkt mit der JSON API verschieben oder umbenennen möchten, erstellen Sie eine Kopie des Objekts mit den gewünschten Attributen und löschen Sie anschließend das ursprüngliche Objekt.
Wenn Sie ein Objekt direkt mit der XML API verschieben oder umbenennen möchten, erstellen Sie eine Kopie des Objekts mit den gewünschten Attributen und löschen Sie anschließend das ursprüngliche Objekt.
Wir empfehlen die Verwendung von Storage Transfer Service, um mehr als 1 TB Daten zwischen Buckets zu verschieben.
Nächste Schritte
- Speicherklasse eines Objekts ändern
- Metadaten eines Objekts bearbeiten
- Objekte und Buckets veröffentlichen
- Weitere Informationen zu den Benennungsanforderungen für Objekte
- Anfragevorbedingungen verwenden, um Race-Bedingungen zu verhindern