Ce guide présente les bonnes pratiques pour créer un outil personnalisé permettant d'importer en bloc des fichiers chiffrés côté client à l'aide de l'API Drive.
Envisager Drive pour ordinateur pour les migrations en libre-service
Un utilisateur peut importer des fichiers depuis sa machine locale à l'aide du Drive pour ordinateur client. Il est entièrement compatible avec le chiffrement côté client et permet aux utilisateurs de chiffrer et d'importer eux-mêmes des fichiers. Il n'est nécessaire de créer un outil personnalisé comme décrit dans ce guide que pour les importations en bloc à grande échelle, sans surveillance ou multi-utilisateurs.
Avant de commencer
Vous devez savoir comment gérer un seul fichier chiffré côté client. Consultez Gérer des fichiers chiffrés côté client individuels pour découvrir les étapes fondamentales du chiffrement, de l'importation/du téléchargement et du déchiffrement, y compris la génération de jetons et l'interaction avec votre service de liste de contrôle d'accès aux clés (KACLS).
S'authentifier avec un compte de service
Utilisez un compte de service avec délégation au niveau du domaine lorsque vous interagissez avec l'API Drive. Cela permet à votre application d'usurper l'identité des utilisateurs. Vous pouvez ainsi les parcourir de manière programmatique et importer des fichiers directement en leur nom.
Recréer la structure du répertoire
Concevez votre outil d'importation pour parcourir de manière récursive les fichiers et dossiers sources afin de refléter la structure de répertoire existante dans Drive. Le processus général est le suivant :
- Pour chaque répertoire source, créez un dossier Drive correspondant.
- Chiffrez et importez les fichiers du répertoire dans le dossier Drive créé.
- Répétez le processus pour les sous-répertoires.
Importer des fichiers au bon endroit
Importez toujours les fichiers dans le dossier Mon Drive de l'utilisateur approprié ou dans un Drive partagé accessible. Pour trouver l'ID d'un Drive partagé ou d'un dossier, recherchez-le de manière statique à partir de l'URL Web Drive ou de manière dynamique à l'aide des méthodes drives.list et files.list.
Éviter les doublons
Drive autorise plusieurs fichiers dans le même dossier à partager exactement le même nom de fichier. Générez des ID pour vos fichiers avant de les importer. Pour ce faire, vous pouvez utiliser la méthode files.generateIds de l'API Drive.
En stockant ces ID pré-générés, votre importateur peut tenter d'importer chaque fichier dans son ID spécifique. Si un fichier portant cet ID existe déjà, votre outil peut l'ignorer en toute sécurité. L'utilisation d'ID pré-générés aidera votre outil à se remettre d'un plantage.
Demander un jeton chiffré côté client avant chaque importation
Appelez generateCseToken pour chaque fichier immédiatement avant l'encapsulation de la clé et l'importation du fichier. Cette approche garantit que le jeton reflète avec précision l'état actuel des métadonnées associées, qui peuvent changer.
Utiliser des importations avec reprise pour les fichiers volumineux
Utilisez les importations avec reprise de l'API Drive pour migrer des fichiers volumineux. Les importations avec reprise permettent à votre importateur de réessayer les blocs ayant échoué lors d'interruptions réseau, plutôt que de redémarrer l'importation complète du fichier.
Restaurer les autorisations de partage
Si votre outil d'importation en bloc doit conserver les autorisations de partage, commencez par chiffrer et importer le fichier, puis appelez la méthode permissions.create.
Les autorisations de partage ne sont pas appliquées lors de l'importation du fichier lui-même.
Gérer l'expiration des jetons
Pour les opérations de longue durée, votre script peut rencontrer des erreurs d'authentification en raison de l'expiration des jetons. Implémentez une logique pour actualiser automatiquement les jetons d'accès et réessayer les importations. Pour en savoir plus, consultez l'exemple Open Source qui montre comment chiffrer et importer un seul fichier.
Valider minutieusement les fichiers importés
Effectuez une validation approfondie après une importation en bloc. Google ne peut pas déchiffrer ni valider vos fichiers côté serveur. La section Valider les fichiers importés décrit plusieurs méthodes permettant de vérifier ponctuellement des fichiers individuels.
Une autre méthode de validation à grande échelle, particulièrement utile après une importation en bloc, consiste à utiliser l'outil de déchiffrement officiel decrypter tool. Commencez par télécharger le contenu chiffré depuis Drive à l'aide de Google Takeout. Tentez ensuite de déchiffrer le contenu à l'aide de l'outil de déchiffrement. Ce processus permet d'identifier les fichiers qui ne peuvent pas être déchiffrés, ce qui indique des problèmes potentiels dans la logique de chiffrement ou d'encapsulation de clé de votre outil d'importation.
Comprendre les limites et quotas
Les fichiers chiffrés côté client sont soumis aux limites et quotas Drive standards. Tenez compte des limites des Drive partagés, des limites générales applicables aux fichiers et aux dossiers, et de la manière de gérer votre quota. De plus, votre outil d'importation doit gérer les limites de débit de votre service de liste de contrôle d'accès aux clés et de votre fournisseur d'identité.