Prácticas recomendadas para importar de forma masiva archivos con encriptación del cliente

En esta guía, se abarcan las prácticas recomendadas para crear una herramienta personalizada para importar de forma masiva archivos encriptados del cliente (CSE) con la API de Drive.

Considera usar Drive para computadoras para las migraciones de autoservicio

Un usuario puede importar archivos desde su máquina local con el cliente de Drive para computadoras. Es totalmente compatible con la encriptación del cliente y permite que los usuarios encripten y suban archivos por sí mismos. La creación de una herramienta personalizada como se describe en esta guía solo es necesaria para las importaciones masivas a gran escala, desatendidas o multiusuario.

Antes de comenzar

Debes comprender cómo administrar un solo archivo encriptado del cliente. Consulta Administra archivos CSE individuales para conocer los pasos fundamentales para la encriptación, la carga o descarga y el desencriptado, incluida la generación de tokens y la interacción con tu servicio de lista de control de acceso a claves (KACLS).

Autentica con una cuenta de servicio

Usa una cuenta de servicio con delegación para todo el dominio cuando interactúes con la API de Drive. Esto permite que tu aplicación suplante a los usuarios, de modo que puedas iterar a través de ellos de forma programática y subir archivos directamente en su nombre.

Vuelve a crear la estructura de directorios

Diseña tu herramienta de importación para que recorra de forma recursiva los archivos y las carpetas de origen para reflejar la estructura de directorios existente en Drive. El proceso de alto nivel es el siguiente:

  1. Para cada directorio de origen, crea una carpeta de Drive correspondiente.
  2. Encripta y sube los archivos del directorio a la carpeta de Drive creada.
  3. Repite el proceso para los subdirectorios.

Sube archivos al lugar correcto

Siempre sube archivos a Mi unidad del usuario correcto o a una unidad compartida accesible. Para encontrar un ID de unidad compartida o de carpeta, búscalo de forma estática en la URL web de Drive o de forma dinámica con los métodos drives.list y files.list.

Cómo evitar duplicados

Drive permite que varios archivos de la misma carpeta compartan exactamente el mismo nombre de archivo. Genera IDs para tus archivos antes de subirlos. Puedes usar el método files.generateIds de la API de Drive para hacerlo.

Si almacenas estos IDs generados previamente, tu importador puede intentar subir cada archivo a su ID específico. Si ya existe un archivo con ese ID, tu herramienta puede omitirlo de forma segura. El uso de IDs generados previamente ayudará a tu herramienta a recuperarse de una falla.

Solicita un token CSE antes de cada carga

Llama a generateCseToken para cada archivo inmediatamente antes del ajuste de claves y la carga de archivos. Este enfoque garantiza que el token refleje con precisión el estado actual de los metadatos asociados, que pueden cambiar.

Usa cargas reanudables para archivos grandes

Usa cargas reanudables de la API de Drive para migrar archivos grandes. Las cargas reanudables permiten que tu importador vuelva a intentar los fragmentos fallidos durante las interrupciones de la red, en lugar de reiniciar la carga completa del archivo.

Restablece los permisos de uso compartido

Si tu herramienta de importación masiva necesita conservar los permisos de uso compartido, primero encripta y sube el archivo y, luego, llama al método permissions.create. Los permisos de uso compartido no se aplican durante la carga de archivos.

Controla el vencimiento del token

Para las operaciones de larga duración, tu secuencia de comandos puede encontrar errores de autenticación debido al vencimiento del token. Implementa la lógica para actualizar automáticamente los tokens de acceso y volver a intentar las cargas. Para obtener más detalles, consulta el ejemplo de código abierto que muestra cómo encriptar y subir un solo archivo.

Valida los archivos importados por completo

Realiza una validación exhaustiva después de una importación masiva. Google no puede desencriptar ni validar tus archivos del servidor. En la sección Valida los archivos importados files, se detallan varios métodos para verificar archivos individuales.

Un método adicional para verificar a gran escala, que es particularmente útil después de una importación masiva, implica usar la herramienta de desencriptado oficial. Primero, descarga el contenido encriptado de Drive con Google Takeout. Luego, intenta desencriptar con la herramienta de desencriptado. Este proceso ayuda a identificar los archivos que no se pueden desencriptar, lo que indica posibles problemas en la lógica de encriptación o ajuste de claves de tu herramienta de importación.

Comprende los límites y las cuotas

Los archivos encriptados del cliente están sujetos a los límites y las cuotas estándar de Drive. Ten en cuenta los límites de las unidades compartidas, los límites generales de archivos y carpetas, y cómo administrar tu cuota. Además, tu herramienta de importación debe controlar los límites de frecuencia de tu servicio de lista de control de acceso a claves (KACLS) y tu proveedor de identidad (IdP).