El servidor Sincronizar una carpeta
Sincronizar una carpeta
@rebofiles/sync mantiene una carpeta del disco igual que una del drive. Cada pasada lista las dos y las compara con lo que eran la última vez que fueron iguales, así sabe qué lado cambió.En esta página
En la aplicación de escritorio
Server → Sync a Folder… (⇧⌘S) pregunta qué carpeta, ~/ReboFiles si no se dice, y la mantiene mientras la ventana está abierta: al empezar, cuando el drive avisa un cambio, cuando la ventana vuelve al frente, y cada medio minuto. La etiqueta de abajo dice cómo fue. El disco lo leen y escriben los comandos propios de la aplicación, que nunca salen de esa carpeta.
Como comando
En cualquier computadora con Node, también como servicio.
npx rebofiles-sync ~/ReboFiles --server https://app.example.com/api/files --token "$TOKEN"
npx rebofiles-sync ./Clients --server … --folder <id of a folder of the drive> --onceEn tu código
import { createDriveClient } from '@rebofiles/drive';
import { watchSync } from '@rebofiles/sync';
const client = createDriveClient({ base: 'https://app.example.com/api/files', headers: () => ({ authorization: `Bearer ${token}` }) });
const sync = watchSync({ client, folder: '/Users/ana/ReboFiles', onAction: (action) => console.log(action) });
// sync.stop()Lo que hace
| Cuando | Hace |
|---|---|
| Nuevo en un lado | Lo crea en el otro: una carpeta, o el archivo enviado o traído. |
| Cambiado en un lado | Una versión nueva en el drive, o el archivo del disco escrito de nuevo. |
| Cambiado en los dos | El del drive con su nombre; el del disco al lado como “nombre (conflict 2026-10-26 14.05).ext”, enviado como archivo propio. |
| Ya no está en el disco | A la papelera del drive, de donde vuelve; salvo que cambiara en el drive desde entonces, que se trae otra vez. |
| Ya no está en el drive | Apartado en el disco, en .rebofiles/removed/; salvo que cambiara en el disco desde entonces, que se envía otra vez. |
| Movido o renombrado en el drive | Movido en el disco, una carpeta con lo que tiene dentro. |
| Un archivo movido en el disco | Movido en el drive, el mismo archivo con sus versiones, encontrado por su tamaño y hora. |
Lo que no hace
- Una carpeta renombrada en el disco se envía otra vez como nueva, y la vieja va a la papelera: los archivos son los mismos, sus versiones empiezan de nuevo.
- Una carpeta vacía en el disco donde había archivos se toma por un disco que no está, y no se hace nada hasta que se diga (allowEmpty).
- Los archivos de los sistemas (.DS_Store, Thumbs.db, los ~$ de Office) se dejan fuera, y también su propia carpeta .rebofiles.
- Un archivo va entero cada vez, no solo la parte que cambió.
Solo viaja lo que cambió
Un archivo cambiado un poco va como una versión nueva de solo las partes que cambiaron: cada versión guarda el SHA-256 de sus partes de 8 MiB, y las partes iguales se copian en el almacenamiento desde la versión anterior (UploadPartCopy de S3, una copia en el disco), sin enviarse otra vez. Un video de un gigabyte con el título cambiado envía 8 MiB. Cualquier subida puede, con partHashes: true.