Entity Files
What this extension does
Section titled “What this extension does”Entity Files lets you attach files to JPA entities and store binary content either:
- on local disk (default), or
- on AWS S3 (optional module).
It also includes UI actions to manage files from CRUD views.
<dependency>
<groupId>tools.dynamia.modules</groupId>
<artifactId>tools.dynamia.modules.entityfiles</artifactId>
<version>26.4.0</version>
</dependency>
<dependency>
<groupId>tools.dynamia.modules</groupId>
<artifactId>tools.dynamia.modules.entityfiles.ui</artifactId>
<version>26.4.0</version>
</dependency>
<dependency>
<groupId>tools.dynamia.modules</groupId>
<artifactId>tools.dynamia.modules.entityfiles.s3</artifactId>
<version>26.4.0</version>
</dependency>
Gradle
Section titled “Gradle”implementation 'tools.dynamia.modules:tools.dynamia.modules.entityfiles:26.4.0'
implementation 'tools.dynamia.modules:tools.dynamia.modules.entityfiles.ui:26.4.0'
implementation 'tools.dynamia.modules:tools.dynamia.modules.entityfiles.s3:26.4.0'
Frontend package
Section titled “Frontend package”pnpm add @dynamia-tools/files-sdk @dynamia-tools/sdkimport { DynamiaClient } from '@dynamia-tools/sdk';import { FilesApi } from '@dynamia-tools/files-sdk';
const client = new DynamiaClient({ baseUrl: import.meta.env.VITE_API_URL, token: '...' });const files = new FilesApi(client.http);
const download = await files.download('invoice.pdf', 'uuid-here');const url = files.getUrl('images/logo.png', 'uuid-here');Java usage example
Section titled “Java usage example”import jakarta.persistence.Entity;import jakarta.persistence.OneToOne;import tools.dynamia.modules.entityfile.domain.EntityFile;
@Entitypublic class Person {
@OneToOne private EntityFile photo;
@OneToOne private EntityFile cover;}import java.io.File;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;import tools.dynamia.modules.entityfile.UploadFileInfo;import tools.dynamia.modules.entityfile.service.EntityFileService;
@Componentpublic class PersonFilesService {
@Autowired private EntityFileService entityFileService;
public void attachPhoto(File file, Person person) { var info = new UploadFileInfo(file); var photo = entityFileService.createEntityFile(info, person); person.setPhoto(photo); }}