Dashboard web para gestionar archivos en SharePoint/OneDrive con soporte para subidas masivas, explorador de archivos y refresh automatico de token.
- Dashboard Web: Interfaz moderna con graficos en tiempo real, monitoreo de progreso y logs
- Subida Masiva: Soporte para subir miles de archivos en paralelo con multiples hilos
- Explorador SharePoint: Navegar, buscar y descargar archivos de sitios SharePoint
- Token Auto-Refresh: Renovacion automatica de tokens usando Chrome DevTools Protocol
- Descarga Paralela: Descargas de carpetas usando ThreadPoolExecutor
- Python 3.8+
- Google Chrome (para refresh de token)
- Dependencias Python:
pip install flask flask-socketio gevent gevent-websocket requests websocket-clientsharepoint-manager/
├── dashboard.py # Servidor Flask principal
├── templates/
│ └── dashboard.html # Frontend del dashboard
├── auto_token_refresh.py # Daemon de refresh de token
├── subir_paralelo.py # Script de subida con hilos
├── subir_onedrive.py # Script de subida simple
├── subir_onedrive_auto.py # Subida con auto-refresh
├── explorador_sharepoint.py # Explorador CLI
├── explorador_oficina.py # Explorador para sitio especifico
├── start_chrome_debug.sh # Iniciar Chrome con CDP
├── token_daemon.py # Servicio de token
└── .gitignore
./start_chrome_debug.shNavegar a SharePoint en Chrome y copiar el token de las DevTools (Network > Headers > Authorization)
Guardar en archivo .token:
echo "eyJhbGc..." > .tokenpython3 dashboard.pyAcceder a: http://localhost:5000
Desde el dashboard o usando el script:
echo "4" | python3 subir_paralelo.py # 4 hilosEditar las URLs de SharePoint en los archivos:
dashboard.py- VariableSHAREPOINT_SITESexplorador_sharepoint.py- VariableCONFIG
| Endpoint | Metodo | Descripcion |
|---|---|---|
/api/status |
GET | Estado actual del proceso |
/api/start |
POST | Iniciar subida |
/api/stop |
POST | Detener subida |
/api/explorer/sites |
GET | Listar sitios SharePoint |
/api/explorer/browse |
GET | Explorar carpeta |
/api/explorer/download-folder |
GET | Descargar carpeta como ZIP |
/api/token/refresh |
POST | Forzar refresh de token |
- NO subir el archivo
.tokenal repositorio - El token expira cada ~60 minutos
- El refresh automatico requiere Chrome con sesion activa
MIT
El servicio Wayland es más seguro que X11 y permite ejecución headless con acceso VNC cuando se necesite intervención manual.
# Instalar compositor Wayland y VNC
sudo apt install cage wayvnc
# Crear entorno virtual con uv
uv venv && uv pip install websocket-client requests| Archivo | Descripción |
|---|---|
start_sharepoint_wayland.sh |
Script de control (start/stop/status/restart) |
~/.config/systemd/user/sharepoint-wayland.service |
Servicio systemd |
# Iniciar manualmente
./start_sharepoint_wayland.sh start
# Ver estado
./start_sharepoint_wayland.sh status
# Detener
./start_sharepoint_wayland.sh stop
# Refrescar token manualmente
./start_sharepoint_wayland.sh refresh# Habilitar servicio
systemctl --user enable sharepoint-wayland.service
# Permitir inicio sin login (requiere sudo)
sudo loginctl enable-linger $USER
# Ver estado
systemctl --user status sharepoint-wayland
# Ver logs
journalctl --user -u sharepoint-wayland -fCuando la sesión de Microsoft expire (~90 días), conectar via VNC:
vncviewer <servidor>:5900- Wayland: Mejor aislamiento entre aplicaciones (anti-keylogger, no screenshots entre apps)
- cage: Compositor minimalista que ejecuta Chrome en modo kiosk aislado
- Token: Almacenado localmente, nunca expuesto en red