https://github.com/europeana/thumbnail-api
API for serving thumbnails of CHOs
https://github.com/europeana/thumbnail-api
api cultural-heritage europeana spring-boot2 thumbnail
Last synced: 5 months ago
JSON representation
API for serving thumbnails of CHOs
- Host: GitHub
- URL: https://github.com/europeana/thumbnail-api
- Owner: europeana
- License: eupl-1.2
- Created: 2019-08-01T12:11:12.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2026-01-13T14:29:13.000Z (5 months ago)
- Last Synced: 2026-01-13T16:59:18.679Z (5 months ago)
- Topics: api, cultural-heritage, europeana, spring-boot2, thumbnail
- Language: Java
- Homepage:
- Size: 343 KB
- Stars: 2
- Watchers: 6
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Thumbnail API
This project retrieves images from our object storage provider(s). No API key is required.
## Requirements
The application needs Java17 and Maven v3.8.x or above
## Functionality
* We use 3 storages : IBM Cloud S3 storage, Amazon S3 (deprecated) and IIIF server (deprecated)
* When a request for a thumbnail comes in, the API’s ThumbnailController will always check IBM Cloud
storage first and if a thumbnail is not found there it will go on to check if it’s in the old Amazon S3 storage.
If it can be found there either, it will check the IIIF server (for v2 IIIF image urls).
* The upload functionality uses an (unmodified) version of the [Scrimage](https://github.com/sksamuel/scrimage)
library for scaling images and converting them to webp. This library has an [Apache 2.0 license](https://github.com/sksamuel/scrimage/blob/master/LICENSE)
## Build
``mvn clean install`` (add ``-DskipTests``) to skip the unit tests during build
## Deployment
1. Generate a Docker image using the project's [Dockerfile](Dockerfile)
2. Configure the application by generating a `thumbnail.user.properties` file and placing this in the
[k8s](k8s) folder. After deployment this file will override the settings specified in the `thumbnail.properties` file
located in the [src/main/resources](src/main/resources) folder. The .gitignore file makes sure the .user.properties file
is never committed.
3. Configure the deployment by setting the proper environment variables specified in the configuration template files
in the [k8s](k8s) folder
4. Deploy to Kubernetes infrastructure