This module implements a batch framework, as well as a basic ZIP/directory ingester.
The ingest is a two-step process:
- Preprocessing: The data is scanned and a number of entries are created in the Drupal database. There is minimal processing done at this point, so preprocessing can be completed outside of a batch process.
- Ingest: The data is actually processed and ingested. This happens inside of a Drupal batch.
This module requires the following modules/libraries:
Install as usual, see this for further information.
N/A
The base ZIP/directory preprocessor can be called as a drush script (see drush help islandora_book_batch_preprocess
for additional parameters):
drush -v --user=admin --uri=http://localhost islandora_book_batch_preprocess --type=zip --target=/path/to/archive.zip
This will populate the queue (stored in the Drupal database) with base entries.
Books must be broken up into separate directories, such that each directory at the "top" level (in the target directory or Zip file) represents a book. Book pages are their own directories inside of each book directory.
Files are assigned to object datastreams based on their basename, so a folder structure like:
- my_cool_book/
- MODS.xml
- 1/
- OBJ.tiff
- 2/
- OBJ.tiff
would result in a two-page book.
A file named --METADATA--.xml can contain either MODS, DC or MARCXML which is used to fill in the MODS or DC streams (if not provided explicitly). Similarly, --METADATA--.mrc (containing binary MARC) will be transformed to MODS and then possibly to DC, if neither are provided explicitly.
If no MODS is provided at the book level - either directly as MODS.xml, or transformed from either a DC.xml or the "--METADATA--" file discussed above - the directory name will be used as the title.
The queue of preprocessed items can then be processed:
drush -v --user=admin --uri=http://localhost islandora_batch_ingest
Custom ingests can be written by extending any of the existing preprocessors and batch object implementations.
Having problems or solved a problem? Check out the Islandora google groups for a solution.
Current maintainers:
If you would like to contribute to this module, please check out our helpful Documentation for Developers info, as well as our Developers section on the Islandora.ca site.