{"id":38965773,"url":"https://github.com/europeana/thumbnail-api","last_synced_at":"2026-01-17T16:30:03.412Z","repository":{"id":51272031,"uuid":"200044002","full_name":"europeana/thumbnail-api","owner":"europeana","description":"API for serving thumbnails of CHOs","archived":false,"fork":false,"pushed_at":"2026-01-13T14:29:13.000Z","size":351,"stargazers_count":2,"open_issues_count":1,"forks_count":2,"subscribers_count":6,"default_branch":"master","last_synced_at":"2026-01-13T16:59:18.679Z","etag":null,"topics":["api","cultural-heritage","europeana","spring-boot2","thumbnail"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"eupl-1.2","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/europeana.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-08-01T12:11:12.000Z","updated_at":"2026-01-13T14:29:15.000Z","dependencies_parsed_at":"2024-04-08T14:41:54.847Z","dependency_job_id":"cf2c74e6-3413-45b0-967b-126198eea636","html_url":"https://github.com/europeana/thumbnail-api","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/europeana/thumbnail-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/europeana%2Fthumbnail-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/europeana%2Fthumbnail-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/europeana%2Fthumbnail-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/europeana%2Fthumbnail-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/europeana","download_url":"https://codeload.github.com/europeana/thumbnail-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/europeana%2Fthumbnail-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28511865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T13:38:16.342Z","status":"ssl_error","status_checked_at":"2026-01-17T13:37:44.060Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","cultural-heritage","europeana","spring-boot2","thumbnail"],"created_at":"2026-01-17T16:30:03.319Z","updated_at":"2026-01-17T16:30:03.404Z","avatar_url":"https://github.com/europeana.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Thumbnail API\nThis project retrieves images from our object storage provider(s). No API key is required. \n\n## Requirements\nThe application needs Java17 and Maven v3.8.x or above\n\n## Functionality\n\n  * We use 3 storages : IBM Cloud S3 storage, Amazon S3 (deprecated) and IIIF server (deprecated)\n  * When a request for a thumbnail comes in, the API’s ThumbnailController will always check IBM Cloud \nstorage first and if a thumbnail is not found there it will go on to check if it’s in the old Amazon S3 storage.\nIf it can be found there either, it will check the IIIF server (for v2 IIIF image urls).\n  * The upload functionality uses an (unmodified) version of the [Scrimage](https://github.com/sksamuel/scrimage)\nlibrary for scaling images and converting them to webp. This library has an [Apache 2.0 license](https://github.com/sksamuel/scrimage/blob/master/LICENSE)\n    \n\n## Build\n``mvn clean install`` (add ``-DskipTests``) to skip the unit tests during build\n\n## Deployment\n1. Generate a Docker image using the project's [Dockerfile](Dockerfile)\n\n2. Configure the application by generating a `thumbnail.user.properties` file and placing this in the \n[k8s](k8s) folder. After deployment this file will override the settings specified in the `thumbnail.properties` file\nlocated in the [src/main/resources](src/main/resources) folder. The .gitignore file makes sure the .user.properties file\nis never committed.\n\n3. Configure the deployment by setting the proper environment variables specified in the configuration template files\nin the [k8s](k8s) folder\n\n4. Deploy to Kubernetes infrastructure\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feuropeana%2Fthumbnail-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feuropeana%2Fthumbnail-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feuropeana%2Fthumbnail-api/lists"}