Important
- The image metadata requirements have changed. Existing
metadata will continue to work, but with no
pagesproperty, the service will assume source images are single resolution and operate less efficiently. This tradeoff was required to clear up ambiguity and prevent the service from making incorrect assumptions about the properties of source images. Image metadata also now supportstilewidth,tileheightandtilesizeproperties to prevent the service from having to probe the image for tile information. - The
x-preflight-dimensionspreflight header has new requirements to match the above changes.
The repository also includes two new command-line utilities. See Components below for details
A IIIF 2.1 and 3.0 Image API compliant server written as an AWS Serverless Application.
- A simple Lambda Function wrapper for the iiif-processor module.
- A Lambda Function URL that is used to invoke the IIIF API via HTTPS.
- A Lambda Layer containing all the dependencies for the Lambda Function.
- Two utility scripts:
- create-tiled-tiff generates a tiled, multi-resolution TIFF from an AWS S3 image object and writes it to another AWS S3 object
- create-metadata probes an existing AWS S3 image object for IIIF geometry metadata and adds the metadata to the S3 object
- Some basic knowledge of AWS.
- An Amazon Web Services account with permissions to create IAM resources via the console and/or command line.
- An Amazon S3 bucket to hold the source images to be served via IIIF. Note: The Lambda Function will be granted read access to this bucket.
For information on deployment, generating source images, advanced features, and customization, see the full online documentation.
If you're working on a PR for this project, create a feature branch off of main.
This repository follows the Samvera Community Code of Conduct and language recommendations. Please do not create a branch called master for this repository or as part of your pull request; the branch will either need to be removed or renamed before it can be considered for inclusion in the code base and history of this repository.
If tests are run locally they will start in "watch" mode. If a CI environment is detected they will only run once. From the project root run:
npm test
To generate a code coverage report run:
npm test --coverage
serverless-iiif is available under the Apache 2.0 license.