This script implements the general workflow to make archival information packages (AIPs) that are ready for ingest into the UGA Libraries' digital preservation system (ARCHive). It may be used for one or multiple files of any file format.
AIPs contain digital objects and metadata files, including a preservation.xml file required by ARCHive, and are bagged according to the Library of Congress standard. UGA Libraries AIP Definition
Specialized AIP workflows for audiovisual materials:
Use the configuration_template.py to make a file named configuration.py with file path variables for your local machine.
FITS includes multiple identification tools, and we adjust which tools are used for particular formats (based on the file extension) to reduce the number of errors.
For Windows, add 7-Zip to your Windows System PATH. In settings, go to Environment Variables > Path > Edit > New and add the 7-zip folder.
Create a file named metadata.csv in the AIPs directory. Example metadata.csv This contains required information about each of the AIPs to be included in this batch. The header row is formatted Department,Collection,Folder,AIP_ID,Title,Version
For UGA, these values are:
To run the script via the command line: python /path/general_aip.py aips_directory [no-zip]
Includes one test file per function, and a test to run the full script. Unit test scripts should be run with the script repo folder "tests" as the current working directory.
Known issue: Tests that check the contents of XML may fail due to the inconsistent order of element attributes.
The script organizes the files, extracts and formats technical metadata, and bags and zips the AIP folders. See AIP Creation Instructions for details.
Each AIP is fully processed before the next one is started. If a known error is encountered, such as failing a validation test or a regular expression does not find a match, the AIP is moved to an error folder, and the rest of the steps are skipped for that AIP.
Adriane Hanson, Head of Digital Stewardship, December 2019.
These scripts were adapted from a set of two bash scripts that were used for making AIPs from 2017-October 2019 at UGA Libraries. (https://github.com/uga-libraries/aip-mac-bash-fits)