Mover
Mover documentos y archivos
Los documentos y archivos pueden trasladarse de un storage a otro mediante comandos administrativos. Esto es útil para migrar contenido a un nuevo repositorio o para reorganizar el almacenamiento entre repositorios.
Ejemplo: Se tienen 500 documentos almacenados en un servidor Nuxeo y se quiere migrarlos a un bucket S3. Con el comando
documentos:moverse preparan los lotes automáticamente y un worker se encarga de ejecutar los movimientos de forma asíncrona.
Los comandos documentos:mover y archivos:mover reciben como parámetros el storage de origen y el de destino, y preparan los lotes correspondientes persistiéndolos en la base de datos.
Luego, el dispatcher procesa dichos lotes y los encola en Redis. Finalmente, worker:lotes ejecuta el movimiento efectivo entre los distintos storages. Este comando puede ejecutarse de forma completa —moviendo los archivos y eliminando los binarios del storage origen— o limitarse a una etapa específica mediante el parámetro --modo: con --modo=mover solo realiza el movimiento sin eliminar el origen, y con --modo=limpiar solo elimina los binarios ya movidos.
Comandos
Para mover documentos y archivos entre storages se dispone de los siguientes comandos:
| Comando | Descripción |
|---|---|
documentos:mover | Prepara los lotes para mover documentos entre storages |
archivos:mover | Prepara los lotes para mover archivos entre storages |
dispatcher | Encola en Redis los lotes pendientes para que el worker los procese |
worker:lotes | Ejecuta los movimientos encolados |
documentos:mover
./bin/docs documentos:mover --storage_origen=1 --storage_destino=2
Prepara los lotes para mover todos los documentos del storage de origen al storage de destino. Antes de proceder, solicita confirmación mostrando la cantidad de documentos a mover. Para omitir la confirmación usar -n. El storage de destino debe estar activo para poder ejecutar el comando.
archivos:mover
./bin/docs archivos:mover --storage_origen=1 --storage_destino=2
Idéntico al comando anterior pero para archivos.
Los IDs de los storages se obtienen con el comando
storages:listar.
worker:lotes
./bin/docs worker:lotes
./bin/docs worker:lotes --modo=mover
./bin/docs worker:lotes --modo=limpiar
Procesa los lotes generados por los comandos de movimiento. El parámetro --modo permite controlar qué parte del proceso se ejecuta:
| Modo | Descripción |
|---|---|
| (sin parámetro) | Mueve los archivos y elimina los binarios del storage origen |
mover | Solo realiza el movimiento, sin eliminar el origen |
limpiar | Solo elimina los binarios del storage origen ya movidos |