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.
Erforderliche Berechtigungen
Console
Sie benötigen die entsprechenden IAM-Berechtigungen, um diesen Leitfaden mit der Google Cloud Console abzuschließen. Wenn die sich Buckets, auf die Sie zugreifen möchten, in einem Projekt befinden, das nicht Sie erstellt haben, muss Ihnen der Projektinhaber möglicherweise erst eine Rolle zuweisen, die die erforderlichen Berechtigungen enthält.
Eine Liste der erforderlichen Berechtigungen für bestimmte Aktionen finden Sie unter IAM-Berechtigungen für die Google Cloud Console.
Eine Liste der relevanten Rollen finden Sie unter Cloud Storage-Rollen. Alternativ können Sie eine benutzerdefinierte Rolle erstellen, die spezifische, eingeschränkte Berechtigungen hat.
Befehlszeile
Damit Sie diese Anleitung mit einem Befehlszeilendienstprogramm ausführen können, benötigen Sie die entsprechenden IAM-Berechtigungen. Wenn die sich Buckets, auf die Sie zugreifen möchten, in einem Projekt befinden, das nicht Sie erstellt haben, muss Ihnen der Projektinhaber möglicherweise erst eine Rolle zuweisen, die die erforderlichen Berechtigungen enthält.
Eine Liste der erforderlichen Berechtigungen für bestimmte Aktionen finden Sie unter IAM-Berechtigungen für gcloud storage
-Befehle.
Eine Liste der relevanten Rollen finden Sie unter Cloud Storage-Rollen. Alternativ können Sie eine benutzerdefinierte Rolle erstellen, die spezifische, eingeschränkte Berechtigungen hat.
Clientbibliotheken
Sie benötigen die entsprechenden IAM-Berechtigungen, um diesen Leitfaden mit den Cloud Storage-Clientbibliotheken abzuschließen. Wenn die sich Buckets, auf die Sie zugreifen möchten, in einem Projekt befinden, das nicht Sie erstellt haben, muss Ihnen der Projektinhaber möglicherweise erst eine Rolle zuweisen, die die erforderlichen Berechtigungen enthält.
Sofern nicht anders angegeben, werden Clientbibliotheksanfragen über die JSON API gestellt und benötigen die unter IAM-Berechtigungen für JSON-Methoden aufgeführten Berechtigungen. Um zu erfahren, welche JSON API-Methoden aufgerufen werden, wenn Sie Anfragen über eine Clientbibliothek stellen, können Sie die Rohanfragen protokollieren.
Eine Liste der relevanten IAM-Rollen finden Sie unter Cloud Storage-Rollen. Alternativ können Sie eine benutzerdefinierte Rolle erstellen, die spezifische, eingeschränkte Berechtigungen hat.
REST APIs
JSON API
Sie benötigen die entsprechenden IAM-Berechtigungen, um diese Anleitung mit der JSON API abzuschließen. Wenn die sich Buckets, auf die Sie zugreifen möchten, in einem Projekt befinden, das nicht Sie erstellt haben, muss Ihnen der Projektinhaber möglicherweise erst eine Rolle zuweisen, die die erforderlichen Berechtigungen enthält.
Eine Liste der für bestimmte Aktionen erforderlichen Berechtigungen finden Sie unter IAM-Berechtigungen für JSON-Methoden.
Eine Liste der relevanten Rollen finden Sie unter Cloud Storage-Rollen. Alternativ können Sie eine benutzerdefinierte Rolle erstellen, die spezifische, eingeschränkte Berechtigungen hat.
Objekt kopieren
So kopieren Sie ein Objekt in einen Ihrer Cloud Storage-Buckets:
Console
- 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 Objekt-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.
Befehlszeile
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
Wobei:
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
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 eine lokale Entwicklungsumgebung 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 eine lokale Entwicklungsumgebung 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 eine lokale Entwicklungsumgebung 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 eine lokale Entwicklungsumgebung 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 eine lokale Entwicklungsumgebung 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 eine lokale Entwicklungsumgebung 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 eine lokale Entwicklungsumgebung 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 eine lokale Entwicklungsumgebung einrichten.
REST APIs
JSON API
Installieren und initialisieren Sie die dcloud CLI, um ein Zugriffstoken für den Header
Authorization
zu generieren.Alternativ können Sie mit dem OAuth 2.0 Playground ein Zugriffstoken erstellen und in den Header
Authorization
einfügen.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"
Wobei:
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"
Wobei:
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 }
XML API
Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header
Authorization
zu generieren.Alternativ können Sie mit dem OAuth 2.0 Playground ein Zugriffstoken erstellen und in den Header
Authorization
einfügen.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"
Wobei:
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
So verschieben Sie ein Objekt in Cloud Storage zwischen Buckets oder benennen ein Objekt in einem Bucket um:
Console
- 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 Objekt-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.
Befehlszeile
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
Wobei:
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
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 eine lokale Entwicklungsumgebung 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 eine lokale Entwicklungsumgebung 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 eine lokale Entwicklungsumgebung 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 eine lokale Entwicklungsumgebung 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 eine lokale Entwicklungsumgebung 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 eine lokale Entwicklungsumgebung 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 eine lokale Entwicklungsumgebung 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 eine lokale Entwicklungsumgebung einrichten.
REST APIs
JSON API
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.
XML API
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