Entity Files
Que hace esta extension
Sección titulada «Que hace esta extension»Entity Files permite adjuntar archivos a entidades JPA y almacenar el contenido binario en:
- disco local (por defecto),
- AWS S3 o MinIO (modulos opcionales), o
- un servidor Buckie (modulo opcional).
Tambien incluye acciones UI para gestionar archivos desde vistas CRUD.
<dependency> <groupId>tools.dynamia.modules</groupId> <artifactId>tools.dynamia.modules.entityfiles</artifactId> <version>VERSION</version></dependency>
<dependency> <groupId>tools.dynamia.modules</groupId> <artifactId>tools.dynamia.modules.entityfiles.ui</artifactId> <version>VERSION</version></dependency>
<dependency> <groupId>tools.dynamia.modules</groupId> <artifactId>tools.dynamia.modules.entityfiles.s3</artifactId> <version>VERSION</version></dependency><dependency> <groupId>tools.dynamia.modules</groupId> <artifactId>tools.dynamia.modules.entityfiles.minio</artifactId> <version>VERSION</version></dependency>implementation 'tools.dynamia.modules:tools.dynamia.modules.entityfiles:VERSION'implementation 'tools.dynamia.modules:tools.dynamia.modules.entityfiles.ui:VERSION'implementation 'tools.dynamia.modules:tools.dynamia.modules.entityfiles.s3:VERSION'implementation 'tools.dynamia.modules:tools.dynamia.modules.entityfiles.minio:VERSION'Paquete frontend
Sección titulada «Paquete frontend»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 archivo = await files.download('factura.pdf', 'uuid-aqui');const url = files.getUrl('images/logo.png', 'uuid-aqui');Ejemplo de uso en Java
Sección titulada «Ejemplo de uso en Java»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); }}