Auf dieser Seite wird gezeigt, wie Sie Objekte kopieren, umbenennen und verschieben. Einige Tools führen atomare Objektverschiebevorgänge aus, andere simulieren einen Objektverschiebevorgang, indem sie das Objekt an einen neuen angegebenen Speicherort kopieren und dann das ursprüngliche Objekt löschen.
- Eine Anleitung zum Kopieren von Objekten finden Sie unter Objekte kopieren.
- Eine Anleitung zum Verschieben oder Umbenennen von Objekten durch Kopieren finden Sie unter Objekte durch Kopieren verschieben oder umbenennen.
- Eine Anleitung zum atomaren Umbenennen von Objekten finden Sie unter Objekte atomar umbenennen.
Wir empfehlen die Verwendung von Storage Transfer Service, um mehr als 1 TB Daten zwischen Buckets zu verschieben.
Hinweise
Sie benötigen die erforderlichen IAM-Rollen, um Objekte zu kopieren, umzubenennen oder zu verschieben. In den folgenden Abschnitten werden die IAM-Anforderungen für verschiedene Anwendungsfälle beschrieben.
Objekte kopieren (einschließlich Verschieben oder Umbenennen durch Kopieren)
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für den Quell-Bucket mit den Objekten, die Sie kopieren möchten, oder für den Ziel-Bucket, in den Sie die Objekte kopieren möchten, zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Kopieren von Objekten benötigen:
-
Storage-Objekt-Betrachter (
roles/storage.objectViewer
) für den Quell-Bucket -
Storage Object User (
roles/storage.objectUser
) für den Ziel-Bucket -
So kopieren Sie Objekte mit der Google Cloud -Konsole:
Einfache Rolle „Betrachter“ (
roles/viewer
) für den Quell- und den Ziel-Bucket sowieroles/storage.objectViewer
undroles/storage.objectUser
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Kopieren von Objekten erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind zum Kopieren von Objekten erforderlich:
-
storage.objects.get
für den Quell-Bucket -
storage.objects.create
für den Ziel-Bucket -
storage.objects.delete
(nur erforderlich, wenn Sie im Rahmen eines Kopiervorgangs oder eines Verschiebevorgangs ein Objekt im Ziel-Bucket ersetzen oder überschreiben) für den Ziel-Bucket -
storage.objects.delete
(nur erforderlich, wenn Sie ein Objekt mit einem zugrunde liegenden Kopiervorgang und Löschvorgang verschieben) für den Quell-Bucket -
storage.folders.create
(nur erforderlich, wenn sich das Objekt, das Sie verschieben, in einem Ordner befindet, den Sie im Ziel-Bucket erstellen möchten) für den Ziel-Bucket -
storage.objects.list
(nur erforderlich, wenn Sie ein Objekt mit der Google Cloud -Konsole kopieren, verschieben oder umbenennen) für die Quell- und Ziel-Buckets -
storage.buckets.list
(nur erforderlich, wenn Sie ein Objekt mit der Google Cloud Konsole kopieren, verschieben oder umbenennen) für das Projekt, das die Quell- und Ziel-Buckets enthält
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen erhalten.
Informationen zum Zuweisen von Rollen für Buckets finden Sie unter IAM mit Buckets verwenden. Informationen zum Zuweisen von Rollen für Projekte finden Sie unter Zugriff auf Projekte verwalten.
Wenn für das Objekt, das Sie kopieren möchten, bestimmte Funktionen aktiviert sind, benötigen Sie möglicherweise zusätzliche oder alternative Rollen. Wenn das zu kopierende Objekt beispielsweise eine Objektaufbewahrungskonfiguration hat, die Sie beibehalten möchten, 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
).
Weitere Informationen finden Sie unter IAM-Berechtigungen für Cloud Storage.
Objekte atomar umbenennen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Storage-Objekt-Nutzer (roles/storage.objectUser
) für den Bucket zuzuweisen, der das umzubenennende Objekt enthält, um die Berechtigungen zu erhalten, die Sie zum atomaren Umbenennen von Objekten benötigen.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum atomaren Umbenennen von Objekten erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um Objekte atomar umzubenennen:
-
storage.objects.move
-
storage.objects.create
-
storage.objects.delete
(nur erforderlich, wenn Sie ein Objekt überschreiben oder ersetzen)
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen erhalten.
Informationen zum Zuweisen von Rollen für Buckets finden Sie unter IAM mit Buckets verwenden.
Objekte kopieren
In diesem Abschnitt wird beschrieben, wie Sie Objekte kopieren. Sie können Objekte aus einem Bucket in einen anderen kopieren.
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 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.
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
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
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.
REST APIs
JSON API
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 }
XML API
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 durch Kopieren verschieben oder umbenennen
In diesem Abschnitt wird beschrieben, wie Sie Objekte mithilfe von zugrunde liegenden Kopiervorgängen für Objekte verschieben oder umbenennen. Mit den in diesem Abschnitt beschriebenen Tools werden Objekte verschoben und umbenannt, indem das ursprüngliche Objekt in einen anderen Namespace kopiert und dann das ursprüngliche Objekt gelöscht wird.
Console
- Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.
Klicken Sie in der Liste der Buckets auf den Namen des Buckets mit dem Objekt, das Sie verschieben 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.
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
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 den Sie das Objekt verschieben möchten. 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 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.
REST APIs
JSON API
Eine Anleitung zum Verschieben oder Umbenennen von Objekten durch Kopieren mit der JSON API finden Sie unter Objekte kopieren.
XML API
Eine Anleitung zum Verschieben oder Umbenennen von Objekten durch Kopieren mit der XML API finden Sie unter Objekte kopieren.
Objekte atomar umbenennen
In diesem Abschnitt wird beschrieben, wie Sie Objekte in einem Bucket atomar umbenennen.
Wenn Sie ein Objekt umbenennen möchten, können Sie die Methode Objects: move
in der Cloud Storage JSON API verwenden.
REST APIs
JSON API
So benennen Sie ein Objekt atomar um:
Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header
Authorization
zu generieren.Verwenden Sie
cURL
, um die JSON API mit einerObjects: move
-Anfrage aufzurufen:curl -X POST
-H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "Content-Length: 0"
"https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/SOURCE_OBJECT_NAME/moveTo/o/DESTINATION_OBJECT_NAME"Wobei:
BUCKET_NAME
ist der Name des Buckets mit dem Objekt, das Sie umbenennen möchten. Beispiel:my-bucket
SOURCE_OBJECT_NAME
ist der URL-codierte Name des Objekts, das Sie umbenennen möchten. Beispiel:pets/dog.png
, URL-codiert alspets%2Fdog.png
.DESTINATION_OBJECT_NAME
ist der URL-codierte Name, den Sie verwenden möchten. Beispiel:pets/cat.png
, URL-codiert alspets%2Fcat.png
.
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