Skip to content

AAFC-BICoE/object-store-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

04b94df · Apr 22, 2025
Sep 10, 2024
Mar 7, 2025
Jul 25, 2022
Jan 10, 2022
Apr 16, 2025
Jan 15, 2020
Mar 14, 2022
Jun 11, 2024
Sep 11, 2019
Jul 11, 2024
Apr 12, 2024
Sep 12, 2019
Apr 4, 2024
Apr 22, 2025
Oct 9, 2024

Repository files navigation

object-store-api

The object-store-api is an API providing an object metadata store backed by MinIO.

Important note on MinIO: Starting version RELEASE.2022-06-02T02-11-04Z, MinIO implements Erasure Coding. On local filesystems files are now stored in another format and are named like .xl.meta.

Features :

  • Implements DINA object-store specification
  • Aligned with Audiovisual Core standard
  • Objects type detection
  • EXIF extraction for images
  • Supports derivative and relationship to original object
  • Supports external resources (link with metadata to a resource stored outside the object-store)
  • Duplicate detection
  • Thumbnails generation for images (supported types) and PDF
  • Optional Message Queue producer for integration (e.g. search index)

Container Image

The Docker Image is available on DockerHub.

Documentation

See documentation page.

Required

To build and run tests

  • Java 21
  • Maven 3.8 (tested)
  • Docker 20+ (for running integration tests)

To run

Usage

To run the object-store-api in the DINA ecosystem see dina-local-deployment.

For testing purpose a Docker Compose example file is available in the local folder. Please note that the app will start without Keycloak and in dev mode.

Create a new docker-compose.yml file and .env file from the example file in the local directory:

cp local/docker-compose.yml.example docker-compose.yml
cp local/*.env .

Start the app (default port is 8081):

docker compose up

Once the services have started you can access metadata at http://localhost:8081/api/v1/metadata

Cleanup:

docker compose down

Testing

Run tests using mvn verify. Docker is required, so the integration tests can launch an embedded Postgres test container.

IDE

object-store-api requires Project Lombok to be setup in your IDE.

Setup documentation for Eclipse: https://projectlombok.org/setup/eclipse