Cette page explique comment utiliser le service de stockage de transfert directement via l'API REST, et de façon automatisée avec Java et Python dans deux scénarios courants. Pour créer une tâche de transfert à l'aide de Google Cloud Console, consultez la page Créer et gérer des transferts à l'aide de la console.
Lorsque vous configurez ou modifiez des tâches de transfert de façon automatisée à l'aide de l'API Storage Transfer, l'heure doit être au format UTC. Pour savoir comment spécifier la programmation d'une tâche de transfert, consultez la page Programmation.
Avant de commencer
Avant de pouvoir configurer des tâches de transfert dans le service de transfert de stockage, assurez-vous que vous disposez des accès nécessaires :
Accès au service de transfert de stockage : l'un des rôles suivants doit vous être attribué :
- roles/owner
- roles/editor
- roles/storagetransfer.admin
- roles/storagetransfer.user
Un rôle personnalisé incluant, au minimum, les autorisations roles/storagetransfer.user
Pour en savoir plus sur l'ajout et la visualisation des autorisations au niveau du projet, consultez la page Utiliser des autorisations Cloud IAM.
Pour en savoir plus sur les rôles et les autorisations IAM dans le service de transfert de stockage, consultez la page Contrôle d'accès à l'aide de rôles et d'autorisations IAM.
Accès à la source et au récepteur : le service de transfert de stockage utilise un compte de service pour effectuer des transferts. Pour accéder à la source et au récepteur de données, ce compte de service doit disposer des autorisations d'accès à la source et des autorisations d'accès au récepteur.
Transférer des données depuis Amazon S3 vers Cloud Storage
Dans cet exemple, vous allez apprendre à déplacer des fichiers depuis Amazon S3 vers un bucket Cloud Storage. Veillez à consulter les pages Configurer l'accès et Tarification pour comprendre les implications de ce type de transfert.
Pour créer la tâche de transfert
Lors de la création de tâches de transfert, n'incluez pas le préfixe s3://
pour bucketName
dans les noms sources des buckets Amazon S3.
REST
Effectuez une requête à l'aide de la méthode 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" } } }Réponse :
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
Pour savoir comment créer un client de service de transfert de stockage, consultez la page Créer un client pour une bibliothèque d'API Google.
Python
Pour savoir comment créer un client de service de transfert de stockage, consultez la page Créer un client pour une bibliothèque d'API Google.
Transfert entre Microsoft Azure Blob Storage et Cloud Storage
Dans cet exemple, vous apprendrez à déplacer des fichiers de Microsoft Azure Storage vers un bucket Cloud Storage. Veillez à consulter les pages Configurer l'accès et Tarification pour comprendre les implications de ce type de transfert.
REST
Effectuez une requête à l'aide de la méthode 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" } } }Réponse :
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": {} } } ] }
Transférer des données entre buckets Cloud Storage
Dans cet exemple, vous allez apprendre à déplacer des fichiers d'un bucket Cloud Storage à un autre. Par exemple, vous pouvez répliquer les données d'un bucket situé dans un autre emplacement.
Pour créer la tâche de transfert
REST
Effectuez une requête à l'aide de la méthode 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 } } }Réponse :
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
Pour savoir comment créer un client de service de transfert de stockage, consultez la page Créer un client pour une bibliothèque d'API Google.
Python
Pour savoir comment créer un client de service de transfert de stockage, consultez la page Créer un client pour une bibliothèque d'API Google.
Vérifier l'état de l'opération de transfert
Une ressource TransferJob
est
renvoyée lorsque vous utilisez transferJobs.create
.
Vous pouvez vérifier l'état du transfert après avoir créé la tâche à l'aide de
transferJobs.get
. Si l'opération de transfert
a démarré, elle renvoie une
TransferJob
contenant un champ
latestOperationName
rempli.
Dans le cas contraire, si l'opération de la tâche de transfert n'a pas démarré, le
champ latestOperationName
est vide.
Pour vérifier l'état d'une tâche de transfert
REST
Effectuez une requête à l'aide de la méthode transferJobs get :GET https://storagetransfer.googleapis.com/v1/{jobName="name"}
Annuler des opérations de transfert
Pour annuler une seule opération de transfert, utilisez la
méthode
transferOperations cancel
. Pour supprimer une tâche de transfert entière, y compris les opérations de transfert
programmées, définissez son
état sur DELETED
à l'aide de
la méthode transferJobs patch
. La mise à jour
de l'état d'une tâche de transfert n'affecte pas les opérations de transfert
en cours d'exécution. Pour annuler une opération de transfert en cours, utilisez la
méthode
transferOperations cancel
.
Étape suivante
Découvrez comment travailler avec Cloud Storage.