Cette page vous explique comment créer des tâches de transfert entre un système de fichiers (soit sur site ou dans le cloud) et Cloud Storage.
Les transferts des systèmes de fichiers vers Cloud Storage sont des transferts basés sur un agent, c'est-à-dire que vous installerez des agents logiciels sur une machine ayant accès pour orchestrer le transfert.
Configurer les autorisations
Avant de créer un transfert, vous devez configurer les autorisations pour les éléments suivants : entités:
Compte utilisateur utilisé pour créer le transfert. Il s'agit du compte connecté à la console Google Cloud ou du compte spécifié lors de l'authentification à la CLI gcloud. Le compte utilisateur peut soit un compte utilisateur standard, soit un compte de service géré par l'utilisateur. | |
Le compte de service géré par Google, également appelé "service
utilisé par le service de transfert de stockage. Ce compte est généralement identifié par
son adresse e-mail, qui utilise le format
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
|
|
Compte de l'agent de transfert qui fournit des autorisations Google Cloud aux agents de transfert. Les comptes d'agent de transfert utilisent les identifiants de l'utilisateur qui les installe ou les identifiants d'un compte de service géré par l'utilisateur pour s'authentifier. |
Voir Autorisations de transfert basées sur les agents pour obtenir des instructions.
Installer des agents dans un pool d'agents
Les transferts basés sur des agents utilisent des agents logiciels pour orchestrer les transferts. Ces agents doit être installé sur une machine ayant accès au système de fichiers impliqué dans le transfert de données.
- Créez un pool d'agents. Utilisez votre compte utilisateur pour cette action.
- Installer des agents dans le pool d'agents. Pour effectuer cette action, utilisez votre compte d'agent de transfert .
Nous vous recommandons de commencer avec trois agents dans votre pool d'agents sources. Une fois le transfert en cours, surveillez la vitesse de transfert. Vous pouvez ajouter d'autres agents au pool pendant le transfert.
Nous vous recommandons d'utiliser une VM par agent, chacune avec au moins quatre processeurs et 8 GiB de RAM.
Options de transfert
Les fonctionnalités suivantes du service de transfert de stockage sont disponibles pour les transferts de systèmes de fichiers vers Cloud Storage.
- Transférer des fichiers spécifiques à l'aide d'un fichier manifeste
- Vous pouvez transmettre une liste de fichiers à traiter par le service de transfert de stockage. Voir Transférer des fichiers ou à l'aide d'un fichier manifeste.
- Spécifier la classe de stockage
- Vous pouvez spécifier la classe de stockage Cloud Storage à utiliser pour vos données dans le bucket de destination. Consultez le
StorageClass
pour les détails REST, ou utilisez la--custom-storage-class
à l'aide de la Google Cloud CLI.Notez que tous les paramètres de classe de stockage sont ignorés si la destination la classe Autoclass est activée sur ce bucket. Si La classe automatique est activée, les objets transférés dans le bucket sont initialement défini sur "Stockage standard".
- Conservation des métadonnées
-
Lors du transfert de fichiers à partir de systèmes de fichiers, le service de transfert de stockage peut Vous pouvez éventuellement conserver certains attributs en tant que métadonnées personnalisées. Si ces fichiers sont ensuite réécrits dans un système de fichiers, le service de transfert de stockage peut convertir les métadonnées préservées dans les attributs POSIX.
Consultez la section Transferts à partir de systèmes de fichiers POSIX de la conservation des métadonnées pour en savoir plus sur les métadonnées pouvant être conservées et sur la configuration de votre transfert.
- Gérer la bande passante réseau
- Par défaut, le service de transfert de stockage utilise autant de bande passante que possible pour transférer des fichiers à partir de votre système de fichiers. Vous pouvez définir une limite de bande passante
empêcher un transfert d'affecter le reste du trafic réseau. Limites de bande passante
sont appliquées au niveau du pool d'agents.
Pour en savoir plus, consultez Gérer la bande passante réseau.
Votre compte utilisateur nécessite l'administrateur de transfert de stockage (
roles/storagetransfer.admin
) rôle à définir ou à modifier les limites de bande passante. - Journalisation
- Le service de transfert de stockage est compatible avec Cloud Logging pour le service de transfert de stockage (recommandé) ainsi qu'avec les journaux de transfert basés sur des agents.
Créer un transfert
N'incluez pas d'informations sensibles, telles que des informations permettant d'identifier personnellement l'utilisateur. ou de sécurité dans le nom de votre job de transfert. Les noms de ressources peuvent être propagés vers les noms d'autres ressources Google Cloud et peuvent être exposés aux systèmes internes de Google, en dehors de votre projet.
Le service de transfert de stockage fournit plusieurs interfaces pour créer transfert.
console Google Cloud
Accédez à la page Service de transfert de stockage dans Google Cloud Console.
Cliquez sur Créer une tâche de transfert. La page Créer une tâche de transfert s'affiche.
Sélectionnez Système de fichiers POSIX comme source.
Sélectionnez Cloud Storage comme type de destination, puis cliquez sur Étape suivante.
Sélectionnez un pool d'agents existant ou sélectionnez Créer un pool d'agents et suivez les instructions pour créer un pool d'agents.
Spécifiez le chemin d'accès complet du répertoire du système de fichiers.
Cliquez sur Étape suivante.
Dans le champ Bucket ou dossier, saisissez le nom du bucket de destination et (éventuellement) le nom du dossier, ou cliquez sur Parcourir pour sélectionner un bucket dans une liste existante de buckets de votre projet actuel. Pour créer un bucket, cliquez sur Créer un bucket
Cliquez sur Étape suivante.
Choisissez vos options de planification.
Cliquez sur Étape suivante.
Sélectionnez les paramètres de la tâche de transfert.
Dans le champ Description, saisissez une description du transfert. Nous vous recommandons de saisir une description pertinente et unique afin de pouvoir différencier les tâches.
Sous Options des métadonnées, utilisez les options par défaut. ou mettre à jour une ou plusieurs valeurs. Pour en savoir plus, consultez la section Conservation des métadonnées.
Sous Écrasement, sélectionnez l'une des options suivantes :
Jamais : le service de transfert de stockage ignore le transfert de tous les fichiers de la source portant le même nom qu'un fichier présent dans la destination.
S'ils sont différents : écrase les fichiers de destination si le fichier source du même nom contient d'autres ETags ou valeurs de somme de contrôle.
Toujours : écrit toujours les fichiers de destination lorsque le fichier source porte le même nom, même s'ils sont identiques.
Sous Dans quel contexte effectuer des suppressions, sélectionnez l'une des options suivantes :
Jamais : ne supprime jamais les fichiers de la source ou de la destination.
Supprimer les fichiers de la source après leur transfert : supprime les fichiers de la source après leur transfert vers la destination.
Supprimer les fichiers de la destination s'ils ne figurent pas dans la source : si les fichiers du bucket Cloud Storage de destination ne figurent pas dans la source, supprimez-les du bucket.
Cette option garantit que le bucket Cloud Storage de destination correspond exactement à votre source.
Indiquez si vous souhaitez Activer la journalisation dans Cloud Storage et/ou Activer la journalisation dans Cloud Logging. Voir Journaux de transfert du système de fichiers et Cloud Logging pour le service de transfert de stockage pour en savoir plus.
Pour créer votre tâche de transfert, cliquez sur Créer.
gcloud
Avant d'utiliser les commandes gcloud
, installez la Google Cloud CLI.
Pour créer une tâche de transfert, utilisez la commande gcloud transfer jobs create
. La création d'une tâche lance le transfert spécifié, sauf si un calendrier ou une valeur --do-not-run
est spécifié.
gcloud transfer jobs create \ posix:///SOURCE \ gs://DESTINATION/ \ --source-agent-pool=SOURCE_POOL_NAME
Où :
SOURCE est un chemin d'accès absolu à partir de racine du système de fichiers. Comme il est précédé de
posix://
, la valeur finale comprend trois barres obliques. Par exemple,posix:///tmp/data/
.DESTINATION correspond au nom d'un bucket Cloud Storage ; éventuellement, un chemin d'accès au dossier suivi d'une barre oblique finale. Exemple :
gs://example-bucket/data/
.--source-agent-pool
spécifie le pool d'agents sources à utiliser pour ce transfert.
Des options supplémentaires vous sont proposées :
--do-not-run
empêche le service de transfert de stockage d'exécuter la tâche lors de l'envoi de la commande. Pour exécuter la tâche, mettez-la à jour pour ajouter une planification ou utilisezjobs run
pour la démarrer manuellement.--manifest-file
spécifie le chemin d'accès à un fichier CSV dans Cloud Storage contenant une liste des fichiers à transférer depuis votre source. Pour en savoir plus sur la mise en forme du fichier manifeste, consultez la section Transférer des fichiers ou objets spécifiques à l'aide d'un fichier manifeste.Informations sur la tâche: vous pouvez spécifier
--name
et--description
.Programmation: spécifiez
--schedule-starts
,--schedule-repeats-every
,--schedule-repeats-until
ou--do-not-run
.Options de transfert : indiquez si vous souhaitez remplacer les fichiers de destination (
--overwrite-when=different
oualways
) et si vous souhaitez supprimer certains fichiers pendant ou après le transfert (--delete-from=destination-if-unique
ousource-after-transfer
) ; indiquez quelles valeurs de métadonnées sont à conserver (--preserve-metadata
) ; et éventuellement définissez une classe de stockage sur des objets transférés (--custom-storage-class
).
Pour afficher toutes les options, exécutez gcloud transfer jobs create --help
ou reportez-vous à la documentation de référence gcloud
.
Notez que toutes les options ne sont pas compatibles avec les transferts basés sur un agent.
options non prises en charge contiennent une remarque à cet effet dans leur texte d'aide.
REST
L'exemple suivant montre comment utiliser le service de transfert de stockage via l'API REST API.
Lorsque vous configurez ou modifiez des tâches de transfert à l'aide de l'API Storage Transfer Service, l'heure doit être au format UTC. Pour en savoir plus sur la spécification de la planification d'une tâche de transfert, consultez la section Planifier.
Pour déplacer des fichiers d'un système de fichiers POSIX vers un bucket Cloud Storage,
utilisez transferJobs.create ;
avec un
posixDataSource
:
POST https://storagetransfer.googleapis.com/v1/transferJobs { "name":"transferJobs/sample_transfer", "description": "My First Transfer", "status": "ENABLED", "projectId": "my_transfer_project_id", "schedule": { "scheduleStartDate": { "year": 2022, "month": 5, "day": 2 }, "startTimeOfDay": { "hours": 22, "minutes": 30, "seconds": 0, "nanos": 0 } "scheduleEndDate": { "year": 2022, "month": 12, "day": 31 }, "repeatInterval": { "259200s" }, }, "transferSpec": { "posixDataSource": { "rootDirectory": "/bar/", }, "sourceAgentPoolName": "my_example_pool", "gcsDataSink": { "bucketName": "destination_bucket" "path": "foo/bar/" }, } }
Le champ schedule
est facultatif. S'il n'est pas inclus, la tâche de transfert doit être démarrée avec une requête transferJobs.run
.
Pour vérifier l'état de votre transfert après avoir créé une tâche, utilisez transferJobs.get
:
GET https://storagetransfer.googleapis.com/v1/transferJobs/sample_transfer?project_id=my_transfer_project_id
Bibliothèques clientes
Les exemples suivants vous montrent comment utiliser le service de transfert de stockage de manière automatisée avec Go, Java, Node.js et Python.
Lorsque vous configurez ou modifiez des tâches de transfert de façon automatisée, l'heure doit être au format UTC. Pour en savoir plus sur spécifiant la planification d'une tâche de transfert, consultez Programmation.
Pour en savoir plus sur les bibliothèques clientes du service de transfert de stockage, consultez la page Premiers pas avec les bibliothèques clientes du service de transfert de stockage.
Pour déplacer des fichiers d'un système de fichiers POSIX vers un bucket Cloud Storage: