Le service de transfert de stockage permet de transférer des fichiers ou des objets spécifiques, qui sont spécifiés à l'aide d'un fichier manifeste. Un fichier manifeste est un fichier CSV importé dans Cloud Storage. Il contient une liste de fichiers ou d'objets sur laquelle le service de transfert de stockage peut agir.
Un fichier manifeste peut être utilisé pour les transferts suivants :
Depuis AWS S3, un stockage compatible S3, Azure Blobstore ou Cloud Storage vers un bucket Cloud Storage.
D'un système de fichiers vers un bucket Cloud Storage.
D'un bucket Cloud Storage vers un système de fichiers
Entre deux systèmes de fichiers.
D'une source HTTP/HTTPS accessible au public vers un bucket Cloud Storage. Suivez les instructions de la section Créer une liste d'URL, car le format du fichier manifeste est unique pour les listes d'URL.
Créer un fichier manifeste
Les fichiers manifestes doivent répondre aux exigences suivantes :
- Les fichiers manifestes doivent être au format CSV.
- Ils peuvent contenir n'importe quel caractère UTF-8.
- La première colonne doit être un nom de fichier ou d'objet. Le nom est relatif au chemin racine ou au bucket et au dossier spécifiés dans la tâche de transfert. Pour en savoir plus, consultez Transferts de système de fichiers et Transferts de stockage d'objets.
- Les fichiers manifestes ne sont pas compatibles avec les caractères génériques. Les noms de dossiers sans nom de fichier ni d'objet ne sont pas acceptés.
- Si un nom de fichier ou d'objet contient une virgule, il doit être placé entre guillemets doubles. Par exemple,
"doe,john.txt"
. - Pour les transferts qui utilisent des agents de transfert (c'est-à-dire les transferts de systèmes de fichiers ou les transferts depuis un stockage compatible avec S3), la taille maximale du fichier manifeste est de 1 Gio, ce qui correspond à environ 1 million de lignes. Si votre fichier manifeste est supérieur à 1 Gio, vous pouvez le diviser en plusieurs fichiers et exécuter plusieurs jobs de transfert. Pour les transferts sans agent, la taille du fichier manifeste n'est pas limitée.
Nous vous recommandons de tester votre transfert avec un petit sous-ensemble de fichiers ou d'objets afin d'éviter les appels d'API inutiles en raison d'erreurs de configuration.
Vous pouvez surveiller l'état des transferts de fichiers depuis la page Tâches de transfert. Les fichiers ou objets dont le transfert échoue sont répertoriés dans les journaux de transfert.
Transferts du système de fichiers
Pour créer un fichier manifeste de fichiers sur un système de fichiers, créez un fichier CSV avec une seule colonne contenant les chemins de fichiers relatifs au répertoire racine spécifié lors de la création de la tâche de transfert.
Par exemple, pour transférer les fichiers système suivants :
Chemin d'accès au fichier |
---|
rootdir/dir1/subdir1/file1.txt |
rootdir/file2.txt |
rootdir/dir2/subdir1/file3.txt |
Votre fichier manifeste doit ressembler à l'exemple suivant :
dir1/subdir1/file1.txt
file2.txt
dir2/subdir1/file3.txt
Enregistrez le fichier manifeste avec le nom de fichier de votre choix et l'extension .csv
.
Transferts de stockage d'objets
Pour créer un fichier manifeste d'objets, créez un fichier CSV dont la première colonne contient les noms d'objet relatifs au nom et au chemin d'accès du bucket spécifiés lors de la création du job de transfert. Tous les objets doivent se trouver dans le même bucket.
Vous pouvez également spécifier une deuxième colonne (facultative) avec le numéro de génération Cloud Storage de la version spécifique à transférer.
Par exemple, vous pouvez transférer les objets suivants :
Chemin de l'objet | Numéro de génération Cloud Storage |
---|---|
SOURCE_PATH/object1.pdf |
1664826685911832 |
SOURCE_PATH/object2.pdf |
|
SOURCE_PATH/object3.pdf |
1664826610699837 |
Votre fichier manifeste doit ressembler à l'exemple suivant :
object1.pdf,1664826685911832
object2.pdf
object3.pdf,1664826610699837
Enregistrez le fichier manifeste avec le nom de fichier de votre choix et l'extension .csv
.
Transferts HTTP/HTTPS
Pour transférer des fichiers spécifiques à partir d'une source HTTP ou HTTPS, consultez les instructions de la section Créer une liste d'URL.
Publier le fichier manifeste
Une fois que vous avez créé le fichier manifeste, vous devez le mettre à la disposition du service de transfert de stockage. Le service de transfert de stockage peut accéder au fichier dans un bucket Cloud Storage ou sur votre système de fichiers.
Importer le fichier manifeste dans Cloud Storage
Vous pouvez stocker le fichier manifeste dans n'importe quel bucket Cloud Storage.
L'agent de service qui exécute le transfert doit disposer de l'autorisation storage.objects.get
pour le bucket contenant le fichier manifeste. Pour savoir comment trouver l'ID de l'agent de service et lui accorder des autorisations sur un bucket, consultez Accorder les autorisations requises.
Pour savoir comment importer le fichier manifeste dans un bucket, consultez Importer des objets dans la documentation Cloud Storage.
Par exemple, pour utiliser la CLI gcloud
afin d'importer un fichier dans Cloud Storage, utilisez la commande gcloud storage cp
:
gcloud storage cp MANIFEST.CSV gs://DESTINATION_BUCKET_NAME/
Où :
MANIFEST.CSV
correspond au chemin d'accès local à votre fichier manifeste. Exemple :Desktop/manifest01.csv
DESTINATION_BUCKET_NAME
correspond au nom du bucket dans lequel vous importez votre objet. Exemple :my-bucket
.
Si l'opération réussit, la réponse se présente comme suit :
Completed files 1/1 | 164.3kiB/164.3kiB
Vous pouvez chiffrer un fichier manifeste à l'aide de clés de chiffrement Cloud KMS gérées par le client. Dans ce cas, assurez-vous que tous les comptes de service accédant au fichier manifeste se voient attribuer les clés de chiffrement applicables. Les clés fournies par le client ne sont pas acceptées.
Stocker le fichier manifeste sur un système de fichiers
Vous pouvez stocker le fichier manifeste sur votre système de fichiers source ou de destination.
L'emplacement du fichier doit être accessible aux agents de transfert. Si vous limitez l'accès au répertoire pour vos agents, assurez-vous que le fichier manifeste se trouve dans un répertoire monté.
Commencer le transfert
Ne modifiez pas le fichier manifeste lorsqu'une opération de transfert est en cours. Nous vous recommandons de verrouiller le fichier manifeste lorsque vous effectuez un transfert.
Cloud Console
Pour démarrer un transfert avec un fichier manifeste depuis la console Cloud :
Suivez les instructions de la section Créer des transferts pour sélectionner votre source, votre destination et vos options.
À la dernière étape, Choisir les paramètres, cochez la case Fournir la liste des fichiers à transférer via un fichier manifeste.
Saisissez l'emplacement du fichier manifeste.
gcloud
Pour transférer les fichiers ou les objets répertoriés dans le fichier manifeste, incluez l'option --manifest-file=MANIFEST_FILE
avec votre commande gcloud transfer jobs create
.
gcloud transfer jobs create SOURCE DESTINATION \
--manifest-file=MANIFEST_FILE
MANIFEST_FILE peut correspondre aux valeurs suivantes :
Chemin d'accès au fichier CSV dans un bucket Cloud Storage :
--manifest-file=gs://my_bucket/sample_manifest.csv
Consultez Importer le fichier manifeste dans Cloud Storage pour en savoir plus sur les autorisations requises si le bucket ou le fichier ne sont pas publics.
Chemin d'accès relatif à partir du système de fichiers SOURCE, y compris tout chemin d'accès spécifié :
--manifest-file=source://relative_path/sample_manifest.csv
Chemin relatif à partir du système de fichiers DESTINATION, y compris tout chemin spécifié :
--manifest-file=destination://relative_path/sample_manifest.csv
REST et bibliothèques clientes
REST
Pour transférer les fichiers ou les objets répertoriés dans le fichier manifeste, effectuez un appel d'API createTransferJob
qui spécifie une transferSpec
pour laquelle le champ transferManifest
est ajouté. Exemple :
POST https://storagetransfer.googleapis.com/v1/transferJobs ... "transferSpec": { "posixDataSource": { "rootDirectory": "/home/", }, "gcsDataSink": { "bucketName": "GCS_NEARLINE_SINK_NAME", "path": "GCS_SINK_PATH", }, "transferManifest": { "location": "gs://my_bucket/sample_manifest.csv" } }
Le fichier manifeste peut être stocké dans un bucket Cloud Storage ou sur le système de fichiers source ou de destination. Les buckets Cloud Storage doivent utiliser le préfixe gs://
et inclure le chemin complet, y compris le nom du bucket. Les emplacements du système de fichiers doivent utiliser un préfixe source://
ou destination://
et sont relatifs à la source ou à la destination du système de fichiers, ainsi qu'au répertoire racine facultatif.
Go
Java
Node.js
Python
Les objets ou fichiers spécifiés dans le fichier manifeste ne sont pas nécessairement transférés dans l'ordre indiqué.
Si le fichier manifeste inclut des fichiers qui existent déjà dans la destination, ceux-ci sont ignorés, sauf si l'option Remplacer les objets existants dans le récepteur est spécifiée.
Si le fichier manifeste comprend des objets qui existent dans une version différente de la destination, l'objet présent dans la destination est remplacé par la version source de l'objet. Si la destination est un bucket avec gestion des versions, une nouvelle version de l'objet est créée.
Étapes suivantes
- Apprenez à filtrer les objets des transferts.
- Apprenez à planifier des tâches de transfert.