Este guia aborda as práticas recomendadas para criar uma ferramenta personalizada para importar em massa arquivos criptografados do lado do cliente (CSE) usando a API Drive.
Considere o Drive para computador para migrações de autoatendimento
Um usuário pode importar arquivos da máquina local usando o cliente Drive para computador. Ela oferece suporte total à criptografia do lado do cliente e permite que os usuários criptografem e façam upload de arquivos por conta própria. Criar uma ferramenta personalizada, conforme descrito neste guia, só é necessário para importações em massa de grande escala, sem supervisão ou multiusuário.
Antes de começar
Você precisa entender como gerenciar um único arquivo criptografado do lado do cliente. Leia Gerenciar arquivos individuais da CSE para aprender as etapas fundamentais de criptografia, upload/download e descriptografia, incluindo geração de tokens e interação com o serviço de lista de controle de acesso a chaves (KACLS).
Autenticar usando uma conta de serviço
Use uma conta de serviço com delegação em todo o domínio ao interagir com a API Drive. Isso permite que seu aplicativo se passe por usuários, para que você possa fazer um loop programático por eles e enviar arquivos diretamente em nome deles.
Recriar a estrutura de diretórios
Projete sua ferramenta de importação para percorrer recursivamente os arquivos e pastas de origem e refletir a estrutura de diretórios existente no Drive. O processo geral é o seguinte:
- Para cada diretório de origem, crie uma pasta correspondente do Drive.
- Criptografe e faça upload dos arquivos do diretório para a pasta criada no Drive.
- Repita o processo para subdiretórios.
Fazer upload de arquivos no lugar certo
Sempre faça upload de arquivos para o Meu Drive do usuário correto ou para um drive compartilhado acessível. Para encontrar o ID de um drive compartilhado ou de uma pasta, localize-o de forma estática no
URL da Web do Drive ou dinamicamente usando os métodos drives.list e
files.list.
Como evitar duplicatas
O Drive permite que vários arquivos na mesma pasta compartilhem o mesmo nome. Gere IDs para seus arquivos antes do upload. Para isso, use o método files.generateIds da API Drive.
Ao armazenar esses IDs pré-gerados, o importador pode tentar fazer upload de cada arquivo para o ID específico. Se já existir um arquivo com esse ID, sua ferramenta poderá pular com segurança. O uso de IDs pré-geradas ajuda a ferramenta a se recuperar de uma falha.
Solicitar um token de CSE antes de cada upload
Chame generateCseToken para cada arquivo imediatamente antes do encapsulamento de chaves e do upload de arquivos. Essa abordagem garante que o token reflita com precisão o estado atual dos metadados associados, que podem mudar.
Usar uploads retomáveis para arquivos grandes
Use a API Drive envios retomáveis para migrar arquivos grandes. Os uploads retomáveis permitem que o importador tente novamente os blocos com falha durante interrupções na rede, em vez de reiniciar o upload de todo o arquivo.
Restaurar permissões de compartilhamento
Se a ferramenta de importação em massa precisar preservar as permissões de compartilhamento, primeiro criptografe e faça upload do arquivo e, em seguida, chame o método permissions.create.
As permissões de compartilhamento não são aplicadas durante o upload do arquivo.
Processar a expiração do token
Para operações de longa duração, seu script pode encontrar erros de autenticação devido à expiração do token. Implemente a lógica para atualizar automaticamente os tokens de acesso e tentar fazer uploads novamente. Para mais detalhes, consulte o exemplo de código aberto (em inglês) que demonstra como criptografar e fazer upload de um único arquivo.
Validar os arquivos importados
Faça uma validação completa após uma importação em massa. O Google não pode descriptografar e validar seus arquivos no lado do servidor. A seção Validar arquivos importados detalha vários métodos para verificar arquivos individuais.
Outro método para verificar em grande escala, especialmente útil após uma importação em massa, envolve o uso da ferramenta oficial de descriptografia. Primeiro, faça o download do conteúdo criptografado do Drive usando o Google Takeout. Em seguida, tente descriptografar usando a ferramenta de descriptografia. Esse processo ajuda a identificar arquivos que não podem ser descriptografados, indicando possíveis problemas na criptografia ou na lógica de encapsulamento de chaves da ferramenta de importação.
Entender os limites e as cotas
Os arquivos criptografados do lado do cliente estão sujeitos aos limites e às cotas padrão do Drive. Conheça os limites dos drives compartilhados, os limites gerais de arquivos e pastas e saiba como gerenciar sua cota. Além disso, a ferramenta de importação precisa processar os limites de taxa do serviço de lista de controle de acesso a chaves (KACLS) e do provedor de identidade (IdP).