Auf dieser Seite wird in zwei gängigen Szenarien gezeigt, wie Sie Storage Transfer Service direkt über die REST API oder programmatisch mit Java und Python nutzen können. Informationen zum Erstellen von Übertragungsjobs mit der Google Cloud Console finden Sie unter Übertragungen mit der Console erstellen und verwalten.
Wenn Sie Übertragungsjobs programmatisch mithilfe der Storage Transfer API konfigurieren, muss die Zeit in UTC angegeben werden. Weitere Informationen zum Angeben des Zeitplans eines Übertragungsjobs finden Sie unter Zeitplan.
Hinweis
Führen Sie folgende Schritte aus, bevor Sie einen Übertragungsjob erstellen:
Prüfen Sie, ob Sie Zugriff auf Storage Transfer Service haben. Dazu prüfen Sie, ob Ihnen eine der folgenden Rollen zugewiesen ist:
- roles/owner
- roles/editor
- roles/storagetransfer.admin
- roles/storagetransfer.user
Eine benutzerdefinierte Rolle, die mindestens die Berechtigung roles/storagetransfer.user umfasst
Weitere Informationen zum Hinzufügen und Ansehen von Berechtigungen auf Projektebene finden Sie unter IAM-Berechtigungen mit Projekten verwenden.
Weitere Informationen finden Sie unter Fehlerbehebung im Bereich Zugriff.
Weitere Informationen zu IAM-Rollen und Berechtigungen in Storage Transfer Service finden Sie unter Zugriffssteuerung mit IAM-Rollen und -Berechtigungen.
Übertragung von Amazon S3 zu Cloud Storage
In diesem Beispiel erfahren Sie, wie Sie Dateien von Amazon S3 in einen Cloud Storage-Bucket verschieben. Informieren Sie sich dazu in den Abschnitten Zugriff konfigurieren und Preise über die Auswirkungen einer Datenverschiebung von Amazon S3 nach Cloud Storage.
So erstellen Sie den Übertragungsjob
Geben Sie beim Erstellen von Übertragungsjobs nicht das Präfix s3://
für bucketName
in Amazon Source-Bucket-Quellnamen an.
REST
Anfrage mit transferJobs create:POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "YOUR DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 1, "month": 1, "year": 2015 }, "scheduleEndDate": { "day": 1, "month": 1, "year": 2015 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "awsS3DataSource": { "bucketName": "AWS_SOURCE_NAME", "awsAccessKey": { "accessKeyId": "AWS_ACCESS_KEY_ID", "secretAccessKey": "AWS_SECRET_ACCESS_KEY" } }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } }Antwort:
200 OK { "transferJob": [ { "creationTime": "2015-01-01T01:01:00.000000000Z", "description": "YOUR DESCRIPTION", "name": "transferJobs/JOB_ID", "status": "ENABLED", "lastModificationTime": "2015-01-01T01:01:00.000000000Z", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 1, "month": 1, "year": 2015 }, "scheduleEndDate": { "day": 1, "month": 1, "year": 2015 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "awsS3DataSource": { "bucketName": "AWS_SOURCE_NAME" }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" }, "objectConditions": {}, "transferOptions": {} } } ] }
Java
Sie suchen nach älteren Beispielen? Weitere Informationen finden Sie im Migration Transfer Service-Migrationsleitfaden.
Python
Sie suchen nach älteren Beispielen? Weitere Informationen finden Sie im Migration Transfer Service-Migrationsleitfaden.
Übertragung zwischen Microsoft Azure Blob Storage und Cloud Storage
In diesem Beispiel erfahren Sie, wie Sie Dateien von Microsoft Azure Storage in ein Cloud Storage-Bucket verschieben und dabei ein Microsoft Azure Storage Shared Access Signature-Token (SAS) verwenden.
Weitere Informationen zu Microsoft Azure Storage SAS finden Sie unter Zugriff auf Azure Storage-Ressourcen mit SAS (Shared Access Signature) gewähren.
Prüfen Sie vor dem Start die Konfiguration des Zugriffs und der Preisgestaltung, um die Auswirkungen des Verschiebens von Daten von Microsoft Azure Storage zu Cloud Storage zu verstehen.
REST
Anfrage mit transferJobs create:POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "YOUR DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 14, "month": 2, "year": 2020 }, "scheduleEndDate": { "day": 14 "month": 2, "year": 2020 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "azureBlobStorageDataSource": { "storageAccount": "AZURE_SOURCE_NAME", "azureCredentials": { "sasToken": "AZURE_SAS_TOKEN", }, "container": "AZURE_CONTAINER", }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } }Antwort:
200 OK { "transferJob": [ { "creationTime": "2020-02-14T01:01:00.000000000Z", "description": "YOUR DESCRIPTION", "name": "transferJobs/JOB_ID", "status": "ENABLED", "lastModificationTime": "2020-02-14T01:01:00.000000000Z", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 14 "month": 2, "year": 2020 }, "scheduleEndDate": { "day": 14, "month": 2, "year": 2020 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "azureBlobStorageDataSource": { "storageAccount": "AZURE_SOURCE_NAME", "azureCredentials": { "sasToken": "AZURE_SAS_TOKEN", }, "container": "AZURE_CONTAINER", }, "objectConditions": {}, "transferOptions": {} } } ] }
Übertragung zwischen Cloud Storage-Buckets
In diesem Beispiel erfahren Sie, wie Sie Dateien von einem Cloud Storage-Bucket in einen anderen verschieben. Sie können beispielsweise Daten in einen Bucket an einem anderen Speicherort replizieren.
So erstellen Sie den Übertragungsjob
REST
Anfrage mit transferJobs create:POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "YOUR DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 1, "month": 1, "year": 2015 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "gcsDataSource": { "bucketName": "GCS_SOURCE_NAME" }, "gcsDataSink": { "bucketName": "GCS_NEARLINE_SINK_NAME" }, "objectConditions": { "minTimeElapsedSinceLastModification": "2592000s" }, "transferOptions": { "deleteObjectsFromSourceAfterTransfer": true } } }Antwort:
200 OK { "transferJob": [ { "creationTime": "2015-01-01T01:01:00.000000000Z", "description": "YOUR DESCRIPTION", "name": "transferJobs/JOB_ID", "status": "ENABLED", "lastModificationTime": "2015-01-01T01:01:00.000000000Z", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 1, "month": 1, "year": 2015 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "gcsDataSource": { "bucketName": "GCS_SOURCE_NAME", }, "gcsDataSink": { "bucketName": "GCS_NEARLINE_SINK_NAME" }, "objectConditions": { "minTimeElapsedSinceLastModification": "2592000.000s" }, "transferOptions": { "deleteObjectsFromSourceAfterTransfer": true } } } ] }
Java
Sie suchen nach älteren Beispielen? Weitere Informationen finden Sie im Migration Transfer Service-Migrationsleitfaden.
Python
Sie suchen nach älteren Beispielen? Weitere Informationen finden Sie im Migration Transfer Service-Migrationsleitfaden.
Quell- und Zielpfade angeben
Mit Quell- und Zielpfaden können Sie Quell- und Zielverzeichnisse angeben, wenn Sie Daten in Ihren Cloud Storage-Bucket übertragen. Beispiel: Sie haben die Dateien file1.txt
und file2.txt
und einen Cloud Storage-Bucket namens B
. Wenn Sie einen Zielpfad mit dem Namen my-stuff
festlegen, befinden sich Ihre Dateien nach der Übertragung in gs://B/my-stuff/file1.txt
und gs://B/my-stuff/file2.txt
.
Quellpfad angeben
Zum Festlegen eines Quellpfads beim Erstellen eines Übertragungsjobs fügen Sie dem Feld gcsDataSource
in der Spezifikation TransferSpec
das Feld path
hinzu:
{ gcsDataSource: { bucketName: "SOURCE_BUCKET", path: "SOURCE_PATH/", }, }
In diesem Beispiel:
- SOURCE_BUCKET: Der Cloud Storage-Quell-Bucket.
- SOURCE_PATH: Der Cloud Storage-Quellpfad.
Zielpfad angeben
Zum Festlegen eines Zielordners beim Erstellen eines Übertragungsjobs fügen Sie dem Feld gcsDataSink
in der Spezifikation TransferSpec
das Feld path
hinzu:
{ gcsDataSink: { bucketName: "DESTINATION_BUCKET", path: "DESTINATION_PATH/", }, }
In diesem Beispiel:
- DESTINATION_BUCKET: Cloud Storage-Ziel-Bucket
- DESTINATION_PATH: Cloud Storage-Zielpfad
Beispiel für eine vollständige Anfrage
Das folgende Beispiel zeigt eine vollständige Anfrage:
POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "YOUR DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 1, "month": 1, "year": 2015 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "gcsDataSource": { "bucketName": "GCS_SOURCE_NAME", "path": "GCS_SOURCE_PATH", }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME", "path": "GCS_SINK_PATH", }, "objectConditions": { "minTimeElapsedSinceLastModification": "2592000s" }, "transferOptions": { "deleteObjectsFromSourceAfterTransfer": true } } }
Status des Übertragungsvorgangs prüfen
Eine TransferJob
-Ressource wird zurückgegeben, wenn Sie transferJobs.create
verwenden.
Sie können den Übertragungsstatus nach dem Erstellen des Jobs mit transferJobs.get
prüfen. Sobald der Übertragungsjob gestartet wurde, wird ein TransferJob
mit einem ausgefüllten latestOperationName
-Feld zurückgegeben. Wenn Übertragungsjob noch nicht begonnen hat, ist das Feld latestOperationName
leer.
Status eines Übertragungsjobs prüfen
REST
Anfrage mit transferJobs.get:GET https://storagetransfer.googleapis.com/v1/{jobName="name"}
Java
Sie suchen nach älteren Beispielen? Weitere Informationen finden Sie im Migration Transfer Service-Migrationsleitfaden.
Python
Sie suchen nach älteren Beispielen? Weitere Informationen finden Sie im Migration Transfer Service-Migrationsleitfaden.
Übertragungsvorgänge abbrechen
Wenn Sie einen einzelnen Übertragungsvorgang abbrechen möchten, verwenden Sie die Methode transferOperations cancel
. Um einen gesamten Übertragungsjob zu löschen, einschließlich künftiger geplanter Übertragungsvorgänge, setzen Sie den Status auf DELETED
, um die Methode transferJobs patch
zu verwenden. Das Aktualisieren des Übertragungsstatus eines Jobs wirkt sich nicht auf Übertragungsvorgänge aus, die derzeit ausgeführt werden. Verwenden Sie die Methode transferOperations cancel
, um einen laufenden Übertragungsvorgang abzubrechen.
Nächste Schritte
Mehr zur Arbeit mit Cloud Storage