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)
The Docker Image is available on DockerHub.
See documentation page.
- Java 21
- Maven 3.8 (tested)
- Docker 20+ (for running integration tests)
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
Run tests using mvn verify
. Docker is required, so the integration tests can launch an embedded Postgres test container.
object-store-api
requires Project Lombok to be setup in your IDE.
Setup documentation for Eclipse: https://projectlombok.org/setup/eclipse