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), o
- AWS S3 (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>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>
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'
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); }}