Gérer les transferts

Cette page explique comment gérer les tâches et opérations de transfert existantes.

Pour créer une tâche de transfert, consultez la page Créer des transferts.

Modifier une configuration de transfert

Vous pouvez modifier les propriétés suivantes d'un transfert existant:

  • Description de la tâche de transfert
  • Identifiants de la source Microsoft Azure Blob Storage ou Amazon S3
  • Tous les filtres appliqués à la tâche de transfert
  • Options d'écrasement ou de suppression des fichiers
  • Calendrier de la tâche de transfert

CLI gcloud

Pour modifier une configuration de transfert existante, utilisez la commande gcloud transfer jobs update.

gcloud transfer jobs update \
  JOB_NAME \
  [options]

Où :

  • JOB_NAME est le nom unique de la tâche à mettre à jour.

  • Les options pouvant être mises à jour sont répertoriées en exécutant la commande gcloud transfer jobs update --help.

Par exemple, pour mettre à jour la source et la destination d'une tâche, ainsi que pour supprimer sa description, exécutez la commande suivante:

gcloud transfer jobs update \
  JOB_NAME \
  --source=gs://new-bucket-1 \
  --destination=gs://new-bucket-2 \
  --clear-description

console Google Cloud

Pour modifier une tâche de transfert, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Service de transfert de stockage.

    Accéder au service de transfert de stockage

  2. Cliquez sur la description de la tâche de transfert. La page Détails de la tâche s'affiche.

  3. Cliquez sur Configuration La configuration de la tâche de transfert s'affiche.

  4. Pour modifier un élément, cliquez sur  Modifier à côté de l'élément.

  5. Pour démarrer une tâche avec les modifications, cliquez sur Lancer une exécution.

REST

Pour modifier une configuration de transfert, utilisez la méthode transferJobs.patch.

Exécuter une tâche de transfert à partir d'une configuration existante

Vous pouvez exécuter une tâche de transfert existante. Cela vous permet de démarrer des tâches sans planification ou de démarrer une tâche en dehors de sa planification.

CLI gcloud

Pour exécuter un transfert à partir d'une configuration existante, utilisez gcloud transfer jobs run:

gcloud transfer jobs run JOB_NAME

Vous pouvez spécifier l'option --no-async facultative pour bloquer d'autres tâches dans votre terminal jusqu'à la fin de l'opération de transfert.

console Google Cloud

Pour exécuter un transfert à partir d'une configuration existante, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Service de transfert de stockage.

    Accéder au service de transfert de stockage

  2. Cliquez sur la description de la tâche de transfert. La page Détails de la tâche s'affiche.

  3. Pour démarrer une tâche de transfert, cliquez sur Lancer une exécution.

REST

Pour exécuter une tâche de transfert, utilisez la méthode transferJobs.run.

Surveiller une tâche de transfert

CLI gcloud

Pour surveiller la progression d'une tâche en temps réel, utilisez gcloud transfer jobs monitor.

gcloud transfer jobs monitor JOB_NAME

La réponse indique l'opération en cours, l'heure de début de la tâche et la quantité de données transférées. Les octets ignorés et les erreurs sont également comptabilisés.

Cloud Monitoring

Pour en savoir plus sur l'utilisation de Cloud Monitoring avec le service de transfert de stockage, consultez Surveiller les jobs de transfert.

Afficher les détails d'une tâche de transfert

CLI gcloud

Pour afficher les détails d'une tâche de transfert, utilisez gcloud transfer jobs describe:

gcloud transfer jobs describe JOB_NAME

Pour afficher l'opération la plus récente de cette tâche, transmettez la valeur de latestOperationName à la commande operations describe:

gcloud transfer operations describe OPERATION_NAME

Pour répertorier toutes les opérations de transfert d'une tâche, utilisez la commande gcloud transfer operations list:

gcloud transfer operations list --job-names=JOB_NAME

Vous pouvez afficher les opérations de plusieurs tâches en les répertoriant, en les séparant par des virgules, en tant que valeur de --job-names. Ne renseignez pas --job-names pour afficher les opérations de toutes les tâches.

Console Google Cloud

Vous pouvez afficher les informations suivantes sur une tâche dans la console Google Cloud:

  • Description et nom de la tâche
  • Type de source et emplacement
  • Emplacement de destination
  • Fréquence de la tâche
  • Statistiques de tâche

Pour afficher les détails d'une tâche de transfert, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Service de transfert de stockage.

    Accéder au service de transfert de stockage

  2. Cliquez sur la description de la tâche de transfert. La page Détails de la tâche s'affiche.

Pour afficher les détails d'une exécution spécifique, cliquez sur Heure de début de l'exécution de la tâche. Voici les informations disponibles sur la tâche :

  • État du transfert
  • Heures de début et de fin
  • Durée
  • Progression
  • Données transférées
  • Nombre d'erreurs
  • Données ignorées
  • Estimation de la vitesse moyenne

REST

Pour afficher les détails d'une tâche de transfert, utilisez la méthode transferJobs.get pour renvoyer des informations sur une tâche de transfert spécifique, comme son ID d'opération.

Bibliothèques clientes

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"}

Go

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/longrunning/autogen/longrunningpb"
	storagetransfer "cloud.google.com/go/storagetransfer/apiv1"
	"cloud.google.com/go/storagetransfer/apiv1/storagetransferpb"
)

func checkLatestTransferOperation(w io.Writer, projectID string, jobName string) (*storagetransferpb.TransferOperation, error) {
	// Your Google Cloud Project ID
	// projectID := "my-project-id"

	// The name of the job whose latest operation to check
	// jobName := "transferJobs/1234567890"
	ctx := context.Background()
	client, err := storagetransfer.NewClient(ctx)
	if err != nil {
		return nil, fmt.Errorf("storagetransfer.NewClient: %w", err)
	}
	defer client.Close()

	job, err := client.GetTransferJob(ctx, &storagetransferpb.GetTransferJobRequest{
		JobName:   jobName,
		ProjectId: projectID,
	})
	if err != nil {
		return nil, fmt.Errorf("failed to get transfer job: %w", err)
	}

	latestOpName := job.LatestOperationName
	if latestOpName != "" {
		lro, err := client.LROClient.GetOperation(ctx, &longrunningpb.GetOperationRequest{
			Name: latestOpName,
		})
		if err != nil {
			return nil, fmt.Errorf("failed to get transfer operation: %w", err)
		}
		latestOp := &storagetransferpb.TransferOperation{}
		lro.Metadata.UnmarshalTo(latestOp)

		fmt.Fprintf(w, "the latest transfer operation for job %q is: \n%v", jobName, latestOp)
		return latestOp, nil
	} else {
		fmt.Fprintf(w, "Transfer job %q hasn't run yet, try again later", jobName)
		return nil, nil
	}
}

Java

Vous recherchez des exemples plus anciens ? Consultez le guide de migration du service de transfert de stockage.


import com.google.longrunning.Operation;
import com.google.storagetransfer.v1.proto.StorageTransferServiceClient;
import com.google.storagetransfer.v1.proto.TransferProto.GetTransferJobRequest;
import com.google.storagetransfer.v1.proto.TransferTypes.TransferJob;
import com.google.storagetransfer.v1.proto.TransferTypes.TransferOperation;
import java.io.IOException;

public class CheckLatestTransferOperation {

  // Gets the requested transfer job and checks its latest operation
  public static void checkLatestTransferOperation(String projectId, String jobName)
      throws IOException {
    // Your Google Cloud Project ID
    // String projectId = "your-project-id";

    // The name of the job to check
    // String jobName = "myJob/1234567890";

    StorageTransferServiceClient storageTransfer = StorageTransferServiceClient.create();

    // Get transfer job and check latest operation
    TransferJob transferJob =
        storageTransfer.getTransferJob(
            GetTransferJobRequest.newBuilder().setJobName(jobName).setProjectId(projectId).build());
    String latestOperationName = transferJob.getLatestOperationName();

    if (!latestOperationName.isEmpty()) {
      Operation operation = storageTransfer.getOperationsClient().getOperation(latestOperationName);
      TransferOperation latestOperation =
          TransferOperation.parseFrom(operation.getMetadata().getValue());

      System.out.println("The latest operation for transfer job " + jobName + " is:");
      System.out.println(latestOperation.toString());

    } else {
      System.out.println(
          "Transfer job "
              + jobName
              + " hasn't run yet,"
              + " try again once the job starts running.");
    }
  }
}

Node.js


// Imports the Google Cloud client library
const {
  StorageTransferServiceClient,
} = require('@google-cloud/storage-transfer');

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// The ID of the Google Cloud Platform Project that owns the job
// projectId = 'my-project-id'

// Storage Transfer Service job name
// jobName = 'transferJobs/1234567890'

// Creates a client
const client = new StorageTransferServiceClient();

/**
 * Checks the latest transfer operation for a given transfer job.
 */
async function checkLatestTransferOperation() {
  const [transferJob] = await client.getTransferJob({projectId, jobName});

  if (transferJob.latestOperationName) {
    const [transferOperation] = await client.operationsClient.getOperation({
      name: transferJob.latestOperationName,
    });

    const operation = JSON.stringify(transferOperation, null, 2);

    console.log(`Latest transfer operation for '${jobName}': ${operation}`);
  } else {
    console.log(`Transfer job '${jobName}' has not ran yet.`);
  }
}

checkLatestTransferOperation();

Python

Vous recherchez des exemples plus anciens ? Consultez le guide de migration du service de transfert de stockage.

from google.cloud import storage_transfer


def check_latest_transfer_operation(project_id: str, job_name: str):
    """Checks the latest transfer operation for a given transfer job."""

    client = storage_transfer.StorageTransferServiceClient()

    # The ID of the Google Cloud Platform Project that owns the job
    # project_id = 'my-project-id'

    # Storage Transfer Service job name
    # job_name = 'transferJobs/1234567890'

    transfer_job = client.get_transfer_job(
        {
            "project_id": project_id,
            "job_name": job_name,
        }
    )

    if transfer_job.latest_operation_name:
        response = client.transport.operations_client.get_operation(
            transfer_job.latest_operation_name
        )
        operation = storage_transfer.TransferOperation.deserialize(
            response.metadata.value
        )

        print(f"Latest transfer operation for `{job_name}`: {operation}")
    else:
        print(f"Transfer job {job_name} has not ran yet.")

Suspendre une tâche de transfert

Vous pouvez suspendre un transfert en cours d'exécution. Lorsque vous suspendez le transfert, l'état de la tâche est conservé et vous pouvez réactiver le transfert ultérieurement. Lorsqu'un transfert est suspendu, la planification ne déclenche pas une nouvelle exécution de la tâche.

CLI gcloud

Pour suspendre une tâche de transfert, transmettez le nom actuel de l'opération de la tâche à gcloud transfer operations pause.

gcloud transfer operations pause OPERATION_NAME

Pour reprendre une tâche de transfert précédemment suspendue, qui redémarre la tâche au même emplacement que celui où elle a été suspendue, utilisez gcloud transfer operations resume.

gcloud transfer operations resume OPERATION_NAME

console Google Cloud

Pour suspendre une tâche de transfert, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Service de transfert de stockage.

    Accéder au service de transfert de stockage

  2. Cliquez sur la description de la tâche de transfert. La page Détails de la tâche s'affiche.

  3. Cliquez sur Suspendre l'exécution. L'état de l'opération en cours est défini sur Suspendu.

Pour reprendre une tâche de transfert précédemment suspendue et la redémarrer à l'endroit où elle a été suspendue, procédez comme suit.

  1. Dans la console Google Cloud, accédez à la page Service de transfert de stockage.

    Accéder au service de transfert de stockage

  2. Cliquez sur la description de la tâche de transfert. La page Détails de la tâche s'affiche.

  3. Cliquez sur Reprendre l'exécution.

    L'état de l'opération en cours est défini sur En cours.

REST

Pour suspendre une tâche de transfert, utilisez la méthode transferOperations.pause.

Désactiver une tâche de transfert

La désactivation d'une tâche de transfert empêche la tâche de transfert de démarrer d'autres opérations planifiées ou des opérations démarrées manuellement à partir de la console. Cela n'empêche pas de démarrer une tâche manuellement avec l'API ou avec la commande gcloud jobs run.

CLI gcloud

Pour désactiver une tâche de transfert, définissez l'état de la tâche sur disabled.

gcloud transfer jobs update JOB_NAME --status=disabled

Pour réactiver une tâche, définissez --status=enabled.

console Google Cloud

Pour désactiver une tâche de transfert, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Service de transfert de stockage.

    Accéder au service de transfert de stockage

  2. Cliquez sur la description de la tâche de transfert. La page Détails de la tâche s'affiche.

  3. Cliquez sur Désactiver la tâche. La boîte de dialogue Désactiver la tâche de transfert ? s'affiche.

  4. Lisez la boîte de dialogue, puis confirmez la désactivation de la tâche en cliquant sur Confirmer.

    Une notification en haut de la page Informations sur la tâche s'affiche pour vous rappeler que la tâche est désactivée.

REST

Utilisez la méthode transferJobs.patch pour définir l'état de la tâche de transfert sur DISABLED.

Supprimer une tâche de transfert

Vous pouvez supprimer les tâches de transfert dont vous n'avez plus besoin. La suppression d'une tâche entraîne les actions suivantes :

  • Arrêt de tous les transferts existants de la tâche
  • Arrêt de tous les transferts récurrents de la tâche
  • Suppression des détails de la configuration de la tâche

La suppression d'une tâche est définitive. Une fois la tâche de transfert supprimée, elle est supprimée de la liste des tâches de transfert. Les informations sur la tâche de transfert sont complètement supprimées du service de transfert de stockage au bout de 30 jours.

Vous pouvez également désactiver la tâche de transfert. Elle reste ainsi répertoriée sur la page Tâches, et vous pouvez la réactiver ou la modifier.

CLI gcloud

Pour supprimer une tâche de transfert, utilisez gcloud transfer jobs delete.

gcloud transfer jobs delete JOB_NAME

console Google Cloud

Pour supprimer une tâche de transfert, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Service de transfert de stockage.

    Accéder au service de transfert de stockage

  2. Cochez la case à côté de la tâche de transfert à supprimer.

  3. Cliquez sur Supprimer la tâche.

    La boîte de dialogue Supprimer la tâche de transfert ? s'affiche.

  4. Lisez la boîte de dialogue, confirmez la suppression de la tâche en saisissant le nom qui lui a été attribué automatiquement dans le champ, puis cliquez sur Supprimer.

    La tâche est supprimée de la page Tâches.

REST

Pour supprimer une tâche de transfert à l'aide de l'API REST, consultez la documentation de référence sur transferJobs.delete.

Voir les détails des erreurs

Si vous rencontrez des erreurs pendant l'exécution d'un transfert, vous pouvez afficher leurs détails pour vous aider à les corriger.

Pour afficher les détails d'une erreur de l'exécution d'une tâche de transfert, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Service de transfert de stockage.

    Accéder au service de transfert de stockage

  2. Cliquez sur la description de la tâche de transfert. La page Détails de la tâche s'affiche.

  3. Effectuez l'une des opérations suivantes pour afficher les détails de la tâche :

    • Dernière tâche exécutée:cliquez sur le bouton See error details (Afficher les détails de l'erreur) ou sur le lien View error details (Afficher les détails de l'erreur). La page Détails de l'erreur s'affiche.

    • Historique des tâches exécutées:

      1. Cliquez sur l'heure de début de l'exécution de la tâche.

        La page Détails de l'exécution s'affiche.

      2. Cliquez sur le lien Afficher les détails de l'erreur.

        La page Détails de l'erreur s'affiche.

  4. Pour afficher des informations supplémentaires sur chaque erreur affichée, cliquez sur  Développer.

  5. Pour filtrer les erreurs, saisissez les propriétés à filtrer dans le champ Saisir le nom ou la valeur de la propriété.

    Lorsque vous placez le curseur dans le champ, un menu déroulant s'affiche avec des options pertinentes pour vous aider à créer votre filtre.