ReboFilesDocs
Empezar3
Qué es ReboFiles
Primeros pasos
Demos para ejecutar
Ponlo en tu app6
Componente de React
Headless: tu propia interfaz
Sin framework
Estilos y temas
Teclado y accesibilidad
Idiomas
Archivos9
Subidas
Vistas previas y el visor
Búsqueda
Cambios en vivo y carpetas grandes
Comentarios
Destacados y campos
Versiones, papelera y espacio
Descargar como .zip
Documentos de Word
El servidor14
La ruta
Frameworks e inicio de sesión
Quién puede hacer qué
Almacenamiento: S3, GCS, Azure y disco
Revisar las subidas
Metadatos: SQLite y Postgres
Esquema de la base de datos
Compartir y enlaces
Actividad y notificaciones
Ganchos, registros y límites
Retención, bloqueos y exportación
Escritorio y otros orígenes
Sincronizar una carpeta
Ir a producción
En equipo1
Asistentes de IA (MCP)
Referencia5
Paquetes
Componentes y hooks
API del cliente
Rutas HTTP
Estado y hoja de ruta
↑↓ para moverte↵ para abrirEsc para cerrar38 páginas

Archivos Descargar como .zip

Descargar como .zip

Varios elegidos, o una carpeta, se descargan como un solo .zip. Se hace en la página: el servidor dice qué va dentro, y los bytes de cada archivo pasan del bucket al .zip a medida que se leen.
Cómo

Cómo se hace

  • POST /zip da lo que va dentro: cada archivo, cada carpeta con lo que contiene, en sus rutas, sin lo que no se puede leer.
  • El texto se comprime con el propio CompressionStream del navegador; lo que ya está comprimido (imágenes, PDF, documentos de Word) se guarda tal cual. ZIP64 para uno de más de 4 GiB.
  • A partir de 500 MB, donde el navegador deja que una página escriba un archivo, se escribe en uno que elige la persona, sin guardar nada en la página.
Omitidos

Lo que quedó fuera

Un archivo que no se pudo leer queda fuera, el .zip se hace con el resto, y el aviso dice cuántos, con un botón para descargarlos por separado.

Enlaces

Quien tiene un enlace a una carpeta la descarga entera, o una de sus carpetas, de la misma forma, sin iniciar sesión.

Código

En código

import { downloadZip } from '@rebofiles/drive';

const { files, size, missed } = await downloadZip(client, ids, { name: 'Contratos', onProgress, signal });