-
Notifications
You must be signed in to change notification settings - Fork 0
ChannelF-Oleo/-Firebase-Storage-Bulk-Synchronizer-Smart-Upload-
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
#☁️ Firebase Storage Bulk Synchronizer ###Script de Carga Masiva para Padrón Fotográfico   Sincronización inteligente de imágenes locales a Firebase Storage con sistema de recuperación de fallos. --- ##⚡ Características Principales * **🔄 Sistema de Resume (Continuidad):** Si el proceso se interrumpe (pérdida de internet, apagón), el script guarda el estado en `progreso.json`. Al reiniciar, detecta la sesión anterior y continúa exactamente donde se quedó. * **🚀 Concurrencia Controlada:** Procesa subidas en lotes de **15 archivos simultáneos** (configurable) para maximizar el ancho de banda sin saturar la red. * **🧠 Smart Diffing:** Evita resubir archivos existentes comparando tu carpeta local contra una lista pre-generada de la nube (`lista_storage.txt`). * **📁 Organización Automática:** Sube las imágenes desde la carpeta local `./fotos` hacia la ruta remota `votantes_fotos/`. --- ##🛠️ Requisitos y Configuración ###1. Prerrequisitos * **Node.js** instalado. * **Cuenta de Servicio de Firebase:** Archivo `.json` con permisos de escritura en Storage. ###2. Estructura de Archivos Esperada El script asume la siguiente estructura de directorios: ```text 📦 tu-proyecto ┣ 📂 fotos <-- Coloca aquí las imágenes (.jpg, .png) a subir ┣ 📂 src ┃ ┗ 📂 data ┃ ┗ 📜 lista_storage.txt <-- Lista de archivos ya existentes en la nube (generada con gsutil o similar) ┣ 📜 cargarPadron.js <-- Este script ┗ 📜 service-account.json <-- Tu archivo de credenciales (nombre puede variar) ```` ###3\. Configuración del Script Abre `cargarPadron.js` y edita la sección de **CONFIGURACIÓN** al inicio del archivo: ```javascript // Debes completar estas variables antes de ejecutar: const SERVICE_ACCOUNT = "./path/a/tu/service-account.json"; // Ruta a tu llave JSON const BUCKET_NAME = "tu-proyecto.appspot.com"; // Nombre de tu bucket ``` ----- ##🚀 Modo de Uso 1. **Instalar dependencias:** ```bash npm install firebase-admin ``` 2. **Ejecutar el script:** ```bash node cargarPadron.js ``` 3. **Flujo de ejecución:** * El script verificará si existe una sesión previa (`progreso.json`). * Si es una nueva sesión, comparará `./fotos` con `./src/data/lista_storage.txt` para identificar faltantes. * Se te pedirá confirmación para iniciar la carga: `(s/n)`. * Verás una barra de progreso con el porcentaje y archivos restantes. ----- ##📝 Archivos Generados El script genera automáticamente estos archivos para control: * `progreso.json`: Base de datos temporal de archivos pendientes. **No borrar** si deseas resumir la carga luego. Se borra automáticamente al finalizar con éxito. * `faltantes_lista.txt`: Lista legible por humanos de todos los archivos que faltan por subir al momento del escaneo. ----- ##⚠️ Notas Importantes * **Lista de Storage:** El archivo `lista_storage.txt` es crucial para no duplicar trabajo. Asegúrate de que contenga los nombres de los archivos que YA están en la nube (puede estar codificado en UTF-8 o UTF-16). * **Formatos:** Solo se procesan archivos con extensión `.jpg`, `.jpeg` o `.png`.
About
Un script de Node.js de alto rendimiento diseñado para sincronizar masivamente archivos locales (200k+) hacia Firebase Storage.
Topics
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published