El servidor Retención, bloqueos y exportación
Retención, bloqueos y exportación
En esta página
Un mínimo de días
retentionDays de los ajustes del drive (Ajustes → Almacenamiento, para quien puede configurar): nada creado hace menos días se borra para siempre, ni por alguien ni por la papelera al vaciarse sola. Puede ir a la papelera y volver; vaciarla lo deja ahí, y borrarlo dice 409 retained.
// Nothing deleted for good before seven years, by anyone or by the trash.
await client.saveSettings({ retentionDays: 7 * 365 });
// A case: this folder and all in it out of reach of the trash until released.
await client.hold(folder.id, 'Case 2026-114');
await client.release(folder.id);Una retención legal
- Poner en retención, en los detalles, para quien puede configurar: ni eso ni nada dentro puede ir a la papelera ni borrarse, por nadie, hasta que se quite. Si se intenta, la respuesta es
409 on-hold. - Pueden llegar versiones nuevas: las anteriores se quedan, como siempre.
- Los detalles dicen quién la puso y por qué; la actividad tiene
heldyreleased, y se le dicen aonChange.
Todo lo de una persona
Ajustes → Idioma → Descargar mis datos hace un .zip de lo que uno posee, en sus lugares, y un rebofiles-export.json al lado: cada entrada suya, lo compartido con ella, sus comentarios, lo que hizo, sus ajustes. GET /export da lo mismo; ?user= el de otra persona, para quien puede configurar.
import { downloadZip } from '@rebofiles/drive';
const exported = await client.exportPerson(); // one's own; another's for who may configure
const { pack, ...rest } = exported;
await downloadZip({ pack: async () => pack, urls: client.urls }, [], {
name: 'my-data',
extra: [{ path: 'rebofiles-export.json', text: JSON.stringify(rest, null, 2) }],
});De otra persona, la exportación da lo que posee e hizo, como lo guarda el drive; sus bytes los lee del almacenamiento tu servidor, porque byRoles no deja descargarlos a nadie más que a ella.