An experiment with a pure JavaScript implementation of the BagIt specification and a simple web application which allows bagging and transferring local content
- File drag and drop or selection
- Recursive directory drag and drop or selection (currently supported only in Chrome; see #1)
- Incremental hashing
- Multi-threading
- Uploads to S3
- Ability to resume interrupted transfers
- Ability to download the generated bag rather than individual files
To build and run via Docker v1.9.1+(exclude sudo if running on mac):
% sudo docker build --tag bagger:dev .
% sudo docker run -p 8000:8000 -d -t bagger:dev
The build system requires npm and gulp. If you don't already have Gulp installed:
% npm install -g gulp
% npm install
% gulp
At this point the compiled JavaScript, CSS and HTML is in the dist/
directory and ready for use.
Run the local webserver on http://127.0.0.1:8000/
% npm start
% npm test
% gulp develop
The included .jshintrc documents the basic JavaScript requirements. Use of a Git pre-commit hook such as https://gist.github.com/acdha/8717683/ is recommended to ensure that JSHint is already run.