DSpace cuenta con un conjunto de herramientas de línea de comandos para importar y exportar ítems en lote, utilizando el Formato de Archivo Simple de DSpace (Simple Archive Format). Además de la funcionalidad que ofrecen, estas herramientas sirven como ejemplo para los usuarios que deseen implementar su propio importador de ítems.
El concepto básico detrás del Formato de Archivo Simple de DSpace es crear un archivo estructurado como un directorio que contiene un subdirectorio por cada ítem. Cada subdirectorio de ítem incluye un archivo con los metadatos descriptivos del ítem, así como los archivos que lo componen.
archive_directory/
item_000/
dublin_core.xml -- qualified Dublin Core metadata for metadata fields belonging to the 'dc' schema.
metadata_[prefix].xml -- metadata in another schema. The prefix is the name of the schema as registered with the metadata registry.
contents -- text file containing one line per filename.
collections -- (Optional) text file that contains the handles of the collections the item will belong to. Each handle in a row.
-- Collection in first line will be the owning collection.
handle -- contains the handle assigned/to be assigned to this resource
relationships -- (Optional) If importing Entities, you can specify one or more relationships to create on import
file_1.doc -- files to be added as bitstreams to the item.
file_2.pdf
item_001/
dublin_core.xml
contents
file_1.png
...
|
El archivo dublin_core.xml o metadata_[prefix].xml tiene el siguiente formato, donde cada elemento de metadatos tiene su propia entrada dentro del conjunto de etiquetas <dcvalue>. Actualmente, hay tres atributos disponibles en la etiqueta <dcvalue>:
element - el elemento de Dublin Corequalifier - el calificador del elementolanguage - (opcional) código de idioma ISO para el elemento
<dublin_core>
<dcvalue element="title" qualifier="none">A Tale of Two Cities</dcvalue>
<dcvalue element="date" qualifier="issued">1990</dcvalue>
<dcvalue element="title" qualifier="alternative" language="fr">J'aime les Printemps</dcvalue>
</dublin_core>
|
(Nota el atributo de etiqueta de idioma opcional, que indica al sistema que el título opcional está en francés).
Al proporcionar URLs como valores para campos que contienen el símbolo de ampersand (&), los ampersands en dichas URLs deben codificarse como &
Cada campo de metadatos utilizado debe estar registrado previamente en el registro de metadatos (metadata registry) de la instancia de DSpace. Consulta las secciones sobre el Registro de Metadatos y el Registro de Formatos de Bitstream Metadata and Bitstream Format Registries.
Se recomienda proporcionar, como mínimo, "dc.title" y, cuando corresponda, "dc.date.issued". Obviamente, puedes (y deberías) proporcionar metadatos mucho más detallados sobre el ítem. Para más información, consulta: Metadata Recommendations. |
El archivo contents simplemente enumera, una por línea, los nombres de archivo de los bitstreams. Consulta el siguiente ejemplo:
file_1.doc file_2.pdf license |
Ten en cuenta que la license es opcional, y si deseas incluir una, puedes colocar el archivo en el directorio .../item_001/, por ejemplo.
El nombre del bitstream puede ir seguido, opcionalmente, de cualquiera de los siguientes elementos:
\tbundle:BUNDLENAME\tpermissions:PERMISSIONS\tdescription:DESCRIPTION\tprimary:trueDonde '\t' representa el carácter de tabulación.
'BUNDLENAME' es el nombre del bundle al que debe añadirse el bitstream. Si no se especifica un bundle, los ítems se colocarán en el bundle predeterminado, ORIGINAL.
'PERMISSIONS' es un texto con el siguiente formato: -[r|w] 'nombre del grupo'
'DESCRIPTION' es un texto que describe el archivo.
Primary se utiliza para especificar el bitstream principal.
La funcionalidad de metadatos IIIF fue añadida en la versión 7.2 y solo es compatible durante la importación (modo 'add') de un paquete SAF. |
Para ítems con IIIF habilitado, el nombre del bitstream puede ir seguido, opcionalmente, de cualquiera de los siguientes elementos:
\tiiif-label:IIIFLABEL\tiiif-toc:IIIFTOC\tiiif-width:IIIFWIDTH\tiiif-height:IIIFHEIGHTDonde:
'IIIFLABEL' es la etiqueta que se utilizará para la imagen en el visor.
'IIIFTOC' es la etiqueta que se utilizará para una entrada en la tabla de contenido del visor.
'IIIFWIDTH' es el ancho de la imagen que se utilizará para el lienzo (canvas) IIIF.
'IIIFHEIGHT' es la altura de la imagen que se utilizará para el lienzo (canvas) IIIF.
| Esta funcionalidad fue añadida en la versión 7.1. Actualmente, el archivo 'relationships' solo es compatible durante la importación (modo 'add') de un paquete SAF. Consulta la nota al final de esta sección sobre el uso de "metadata_relation.xml" si deseas exportar y actualizar relaciones. |
El archivo opcional relationships enumera las relaciones de esta Entidad con otras Entidades (ya sea que existan en el sistema o que también estén incluidas en tu lote de importación SAF). Esto permite vincular entidades a otras nuevas o existentes durante la importación. Las entidades pueden vincularse a otras dentro de este mismo conjunto de importación haciendo referencia al nombre de su subcarpeta de importación. Dado que las relaciones solo pueden crearse entre Entidades, este archivo solo puede utilizarse al importar Configurable Entities.
Cada línea del archivo contiene una clave de tipo de relación y un identificador de ítem con el siguiente formato:
relation.<relation_key> <handle|uuid|folderName:import_item_folder|schema.element[.qualifier]:value> |
El input_item_folder debe hacer referencia al nombre de la carpeta de otro ítem dentro de este lote de importación. Ejemplo:
relation.isAuthorOfPublication 5dace143-1238-4b4f-affb-ed559f9254bb relation.isAuthorOfPublication 123456789/1123 relation.isOrgUnitOfPublication folderName:item_001 relation.isProjectOfPublication project.identifier.id:123 relation.isProjectOfPublication project.identifier.name:A Name with Spaces |
Durante la importación inicial, los ítems nuevos se almacenan en un mapa utilizando como clave el nombre de la carpeta del ítem. Una vez completada la importación inicial, se realiza una segunda pasada que verifica si existe un archivo 'relationships' en cada carpeta y crea una relación del tipo especificado con el ítem indicado.
Recuerda que, si estás creando nuevas Entidades mediante un paquete SAF, dichas Entidades DEBEN especificar un campo de metadatos "dspace.entity.type". Dado que este campo pertenece al esquema "dspace", DEBE ser definido en un archivo "metadata_dspace.xml", de manera similar a:
|
Si ya conoces el UUID de una Entidad existente con la que deseas establecer una relación, también puedes crear o actualizar el archivo "metadata_relation.xml" para añadir o modificar la relación, de manera similar a:
El archivo "relationships" se utiliza principalmente para crear relaciones entre Entidades dentro del mismo lote de importación. Por supuesto, también puedes optar por usar el archivo "relationships" para crear nuevas relaciones con Entidades existentes, en lugar de crear o actualizar el archivo "metadata_relation.xml". La principal ventaja del archivo "metadata_relation.xml" es que se utiliza tanto en la exportación como en la importación, mientras que el archivo "relationships" solo se utiliza durante la importación en este momento. |
metadata_[prefix].xml para un Esquema DiferenteEs posible utilizar otros esquemas como EAD, VRA Core, etc. Asegúrate de haber definido el nuevo esquema en el Registro de Esquemas de Metadatos de DSpace.
metadata_[prefix].xml, donde [prefix] se reemplaza con el prefijo del esquema.<dublin_core> incluye el atributo schema=[prefix].Aquí tienes un ejemplo para metadatos ETD, que estarían en el archivo metadata_etd.xml:
<dublin_core schema="etd">
<dcvalue element="degree" qualifier="department">Computer Science</dcvalue>
<dcvalue element="degree" qualifier="level">Masters</dcvalue>
<dcvalue element="degree" qualifier="grantor">Michigan Institute of Technology</dcvalue>
</dublin_core> |
Antes de ejecutar el importador de ítems sobre ítems previamente exportados desde una instancia de DSpace, consulta primero la sección Transferencia de Ítems entre Instancias de DSpace.
Comando utilizado: |
|
Clase Java (Java class): |
|
Formas corta y (larga) de los argumentos: | Descripción (Description) |
| Agregar ítems a DSpace ‡ |
| Reemplazar ítems listados en el archivo de mapeo ‡ |
| Eliminar ítems listados en el archivo de mapeo ‡ |
| Origen de los ítems (directory) |
| Colección de destino por su Handle o ID de base de datos |
| Dónde se puede encontrar el archivo de mapeo (mapfile) de los ítems (nombre y directorio) |
| Correo electrónico de la eperson que realiza la importación |
| Enviar la entrega a través del flujo de trabajo de la colección |
| Inicia la alerta por correo electrónico indicando que el/los ítem(s) ha(n) sido importado(s) |
| Ejecución de prueba, no importar realmente los ítems |
| Aplicar la plantilla de la colección |
| Reanudar una importación fallida (solo se usa con la opción Add) |
| comando de ayuda |
| Nombre del archivo zip |
‡ Estos son mutuamente excluyentes.
El importador de ítems permite importar en lote una cantidad ilimitada de ítems para una colección específica, utilizando un comando de línea de comandos (CLI) muy simple y sus respectivos 'argumentos'.
Para agregar ítems a una colección, debes reunir la siguiente información:
[dspace]/bin/dspace import --add --eperson=joe@user.com --collection=CollectionID --source=items_dir --mapfile=mapfile |
o utilizando la forma corta:
[dspace]/bin/dspace import -a -e joe@user.com -c CollectionID -s items_dir -m mapfile |
El comando anterior recorrerá los ítems del directorio de archivo, los importará y luego generará un archivo de mapeo que almacena la relación entre los directorios de ítems y sus handles. GUARDA ESTE ARCHIVO DE MAPEADO. Puedes utilizarlo para reemplazar o eliminar (deshacer la importación de) los ítems mapeados.
Prueba. Puedes agregar --validate (o -v) al comando para simular todo el proceso de importación sin realizar realmente la importación. Esto es extremadamente útil para verificar tus archivos de importación antes de ejecutar la importación real.
Para agregar ítems a una colección, debes reunir la siguiente información:
[dspace]/bin/dspace import --add --eperson=joe@user.com --collection=CollectionID --source=zipfile_dir --zip=filename.zip --mapfile=mapfile |
o utilizando la forma abreviada:
[dspace]/bin/dspace import -a -e joe@user.com -c CollectionID -s zipfile_dir -z filename.zip -m mapfile |
El comando anterior descomprimirá el archivo zip, recorrerá los ítems del directorio de archivo, los importará y luego generará un archivo de mapeo que almacena la relación entre los directorios de ítems y sus handles. GUARDA ESTE ARCHIVO DE MAPEADO. Puedes utilizarlo para reemplazar o eliminar (deshacer la importación de) los ítems mapeados.
Prueba. Puedes agregar --validate (o -v) al comando para simular todo el proceso de importación sin realizar realmente la importación. Esto es extremadamente útil para verificar tus archivos de importación antes de ejecutar la importación real.
Reemplazar ítems existentes es relativamente sencillo. ¿Recuerdas el archivo de mapeo que guardaste anteriormente? Ahora lo vas a utilizar. El comando (en forma abreviada):
[dspace]/bin/dspace import -r -e joe@user.com -c collectionID -s items_dir -m mapfile |
Forma extendida:
[dspace]/bin/dspace import --replace --eperson=joe@user.com --collection=collectionID --source=items_dire --mapfile=mapfile |
Si deseas reemplazar contenido utilizando un archivo zip, eso también es posible. El comando es similar. Pero, en este caso, "-s" se refiere al directorio donde se encuentra el archivo zip, y "-z" indica el nombre del archivo zip:
[dspace]/bin/dspace import -r -e joe@user.com -c collectionID -s zipfile_dir -z filename.zip -m mapfile |
Puedes deshacer la importación o eliminar ítems siempre que tengas el archivo de mapeo (mapfile). ¿Recuerdas el archivo de mapeo que guardaste anteriormente? El comando es (en forma abreviada):
[dspace]/bin/dspace import -e joe@user.com -d -m mapfile |
En forma extendida:
[dspace]/bin/dspace import --eperson=joe@user.com --delete --mapfile mapfile |
--workflow (-w), los ítems importados pasarán por el sistema de flujo de trabajo.--template (-p).--resume (-R) para reanudar la importación desde donde quedó una vez que hayas corregido el error.Especificar la colección propietaria por ítem desde la herramienta de administración por línea de comandos
Si omites la opción -c (que normalmente es obligatoria), el ItemImporter buscará un archivo llamado "collections" en cada directorio de ítem. Este archivo debe contener una lista de colecciones, una por línea, especificadas ya sea por su handle o por su ID interna en la base de datos. Luego, el ItemImporter agregará el ítem a cada una de las colecciones especificadas. La colección propietaria será la que esté especificada en la primera línea del archivo collections.
Si se especifica tanto la opción -c como el archivo collections en el directorio del ítem, el ItemImporter ignorará el archivo collections y colocará el ítem en la colección indicada mediante la línea de comandos.
Dado que el archivo collections puede variar entre los distintos directorios de ítems, esto te brinda un control más detallado sobre el proceso de agregar ítems por lotes a diferentes colecciones.
Available in DSpace 7.4 and above. |
La importación por lotes también puede realizarse a través de la interfaz de usuario del Administrador. Los pasos a seguir son:
A. Preparar los datos
B. Importar los ítems a través de la interfaz de usuario (UI)

Al hacer clic en "Proceder", se iniciará la importación por lotes. Esto creará un nuevo "Proceso" que comenzará la carga del lote. Dependiendo del tamaño del lote, este proceso puede tardar un tiempo en completarse. Puedes actualizar la página para ver el estado actual, o volver a la lista de procesos (menú "Procesos" en la barra lateral) para verificar su estado. Una vez que el proceso esté COMPLETADO, verás un registro de los resultados y un archivo de mapeo (mapfile), que puede usarse para realizar actualizaciones posteriores.
También es posible iniciar una "importación" directamente desde el menú "Procesos". Esto te permite especificar opciones y banderas adicionales que normalmente solo están disponibles en la herramienta de importación por línea de comandos (consulta la documentación anterior). |
El exportador de ítems puede exportar un solo ítem o una colección de ítems, y crea un archivo en el formato de archivo simple de DSpace mencionado anteriormente para cada ítem exportado. Los ítems se exportan en un orden secuencial, según se recuperan de la base de datos. Como resultado, los números secuenciales de los subdirectorios de ítems (item_000, item_001, etc.) no están relacionados con el handle ni con el ID del ítem en DSpace.
Comando utilizado: |
|
Java class: | org.dspace.app.itemexport.ItemExport |
Formas corta y (larga) de los argumentos: | Descripción (Description) |
| Tipo de exportación. COLLECTION indicará al programa que deseas exportar toda la colección. ITEM será solo para el ítem específico. (Deberás ingresar las palabras clave en mayúsculas. Consulta los ejemplos a continuación). |
| El ID o Handle de la colección o ítem que se va a exportar. |
| La ruta de destino donde deseas que se guarde el archivo de ítems. |
| Número de secuencia con el que se debe comenzar. El número que indiques será el nombre del primer directorio creado para tu exportación. La estructura del directorio de exportación es la misma que la utilizada para la importación. |
| Exportar el ítem o la colección para migración. Esto eliminará el handle y cualquier otro metadato que será recreado en la nueva instancia de DSpace. |
| -x or --exclude-bitstreams | No exportar bitstreams. Consulta el escenario de uso a continuación. |
| Ayuda breve. |
Exportar una Colección
El comando CLI para exportar los ítems de una colección es:
[dspace]/bin/dspace export --type=COLLECTION --id=collectionID_or_handle --dest=/path/to/destination --number=seq_num |
Forma corta:
[dspace]/bin/dspace export -t COLLECTION -i collectionID_or_handle -d /path/to/destination -n seq_num |
La palabra clave COLLECTION indica que deseas exportar una colección completa. El ID puede ser el ID de base de datos o el handle. El exportador comenzará a numerar los archivos simples con el número de secuencia que proporciones.
Exportar un Ítem Individual
Para exportar un solo ítem, usa la palabra clave ITEM y proporciona el ID del ítem como argumento:
[dspace]/bin/dspace export --type=ITEM --id=itemID_or_handle --dest=/path/to/destination --number=seq_num |
Forma corta:
[dspace]/bin/dspace export -t ITEM -i itemID_or_handle -d /path/to/destination -n seq_num |
Cada ítem exportado tendrá un archivo adicional en su directorio llamado "handle". Este contendrá el handle asignado al ítem, y será leído por el importador para que los ítems exportados e importados en otra máquina conserven el handle original del ítem.
El Argumento
-m
Usar el argumento -m exportará el ítem o la colección y también realizará el paso de migración. Ejecutará el mismo proceso descrito en la siguiente sección Exchanging Content Between Repositories. Se recomienda leer esa sección en conjunto con el uso de esta opción.
El Argumento -x
Usar el argumento -x realizará una exportación estándar, excepto por los bitstreams, que no serán exportados. Si tienes un SAF completo sin bitstreams y cuentas con un archivo de bitstreams (que podría haber sido importado previamente en DSpace) ubicado en algún lugar cercano, puedes crear enlaces simbólicos (symlinks) desde los archivos originales hacia los directorios SAF y obtener así una colección exportada que prácticamente no ocupe espacio, pero que por lo demás sea idéntica a la colección exportada (es decir, que se pueda importar nuevamente en DSpace). En el caso de colecciones muy grandes, el modo -x podría ser considerablemente más rápido que una exportación completa.
Available in DSpace 7.4 and above. |
La exportación por lotes también puede realizarse a través de la interfaz de usuario del Administrador. El límite de tamaño de archivo para la carga por defecto es de 512 MB, y se configura en el archivo application.properties de Spring Boot.
Los pasos a seguir son:

También es posible iniciar una "exportación" directamente desde el menú "Procesos". Esto te permite especificar opciones y banderas adicionales que normalmente solo están disponibles en la herramienta de exportación por línea de comandos (consulta la documentación anterior). También te permite exportar un solo ítem. |