BULK IMPORT
https://doc.nuxeo.com/nxdoc/nuxeo-bulk-document-importer/
Requiere la instalación del paquete de Nuxeo "nuxeo-plataform-importer".
Su funcionalidad es importar gran cantidad de información, ya sea metadatos y/o ficheros, a una instancia.
Este sistema usa dos funcionalidades diferentes:
FileWithMetadataSourceNode
La idea es asociar un fichero "metadata.properties" en cada carpeta. En ese fichero se encontrarán los metadatos que se vayan a usar en ese directorio.
├── CARPETA-A
├── file1.pdf
├── file2.pdf
├── metadata.properties
├── CARPETA-A1
│ ├── file1.pdf
│ ├── file2.pdf
│ └── metadata.properties
├── CARPETA-A2
│ ├── file1.pdf
│ ├── file2.pdf
│ └── metadata.properties
└── CARPETA-A3
├── file1.pdf
├── file2.pdf
└── metadata.properties
El formato de los ficheros "metadata.properties" será el siguiente:
dc\:description=some desscription
dc\:source=some source
dc\:subjects=subject4|subject5
ecm\:primaryType=DesignArt
dc\:description=Created by the bulk-importer
da\:batch_import_id=
123456
da\:author=John Doe
ecm\:primaryType
" para asignar el tipo de tipo documental al que se hace referencia.FileWithIndividualMetadasSourceNode
En este caso la tipología es la siguiente. Se añadirá un fichero "metadata.properties" por cada fichero que se añada al sistema.
├── DIRECTORIO-A
│ ├── DIRECTORIO-A1
│ │ ├── hello11.pdf
│ │ └── hello11.properties
│ ├── hello1.pdf
│ └── hello1.properties
├── hello.pdf
└── hello.properties
Para usar esta tipología se necesita redefinir ciertos ficheros de importación. Abría que crear "importer-config.xml
" en "nxserver/config
", o añadir en Nuxeo Studio un fichero XML.
- Usando "
importer-config.xml
":
<?
xml
version
=
"1.0"
?>
<
component
name
=
"customImporter"
>
<
require
>org.nuxeo.ecm.platform.importer.service.jaxrs.contrib</
require
>
<
extension
target
=
"org.nuxeo.ecm.platform.importer.service.DefaultImporterComponent"
point
=
"importerConfiguration"
>
<
importerConfig
sourceNodeClass
=
"org.nuxeo.ecm.platform.importer.source.FileWithIndividualMetadasSourceNode"
>
<
documentModelFactory
leafType
=
"File"
folderishType
=
"Folder"
documentModelFactoryClass
=
"org.nuxeo.ecm.platform.importer.factories.DefaultDocumentModelFactory"
/>
</
importerConfig
>
</
extension
>
</
component
>
- A través de Studio:
- Advanced Settings> XML Extensions
- Nueva extension (Por ejemplo, "
ConfigureBulkImporter
") - Añadir el código anterior excepto las etiquetas
"<?xml version="1.0">
,<component ...>
and</component>
" que las añade Studio por defecto.
FUNCIONAMIENTO
Su funcionamiento se realizará a través de un REST Cliente. En los enlaces siguientes se activará el log y se añadirá la carpeta "/path/to/import" en el directorio "default-domain/workspaces/some-workspace" de la instancia de Nuxeo,
GET http://localhost:8080/nuxeo/site/fileImporter/logActivate
GET http://localhost:8080/nuxeo/site/fileImporter/run?targetPath=/default-domain/workspaces/some-workspace&inputPath=/path/to/import&batchSize=10&interactive=false&nbThreads
GET http://localhost:8080/nuxeo/site/fileImporter/log
Se debe tener en cuenta la cantidad de memoria que se pretende transferir, que se controlará mediante el archivo "nuxeo.cont" con la variable JAVA_OPTS (por ejemplo, -Xmx4g pondrá un máximo de 4Gbytes).
REST API
Fuente URL | Descripción | Salida |
---|---|---|
GET nuxeo/site/randomImporter/run | Generador de texto aleatorio para pruebas | text/plain; charset=UTF-8 |
GET nuxeo/site/fileImporter/run | Importa archivos por defecto | text/plain; charset=UTF-8 |
GET nuxeo/site/fileImporter/log | Log de contenido | text/plain; charset=UTF-8 |
GET nuxeo/site/fileImporter/logActivate | Activa log | text/plain; charset=UTF-8 |
GET nuxeo/site/fileImporter/logDesactivate | Desactiva log | text/plain; charset=UTF-8 |
GET nuxeo/site/fileImporter/status | Estado de importación (threads) | text/plain; charset=UTF-8 "Running" or "Not Running" |
GET nuxeo/site/fileImporter/kill | Parar la importación | text/plain; charset=UTF-8 |
GET nuxeo/site/fileImporter | Interfaz de usuario para para establecer parámetros | (html) |
fileImporter/run
Parámettros | Valores por defecto | Descripción |
---|---|---|
leafType | null | Tipo leaf usado por documentModelFactory para importar |
folderishType | null | Tipo fichero usado por documentModelFactory para importar |
inputPath | N/A | Camino raíz para importar (local a servidor) |
| N/A | Camino destino en Nuxeo |
| false | Si es verdadero el directorio no será creado |
| 5 | Número de documentos que se creará antes de hacer un commit |
| 5 | Número máximo de thrads que pueden ser permitidas |
| false | |
transactionTimeout | 600 | Timeout de transición (segundos) |
N/A no es un valor por defecto, es un parámetro requerido.
randomImporter/run
Parámetros | Valores por defecto | Descripción |
---|---|---|
targetPath | N/A | Camino destino en Nuxeo |
skipRootContainerCreation |
| |
batchSize | Número de documentos que se creará antes de hacer un commit | |
nbThreads | Número máximo de threads que se puede asignar | |
| ||
nbNodes | N/A | Número de nodos a crear |
fileSizeKB | ||
onlyText | true | |
blockSyncPostCommitProcessing | ||
blockAsyncProcessing | ||
bulkMode | true |