Académique Documents
Professionnel Documents
Culture Documents
en utilisant Java
Spring Boot
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.5.2</version>
<exclusions>
<exclusion>
<artifactId>okhttp</artifactId>
<groupId>com.squareup.okhttp3</groupId>
</exclusion>
</exclusions>
</dependency>
Nous allons maintenant définir les valeurs des variables
dans le fichier application.properties qui seront utilisées lors
de la configuration du client MinIO.
# Minio Properties
- spring.minio.url: http://localhost:8080
- spring.minio.bucket: my-class-bucket
- spring.minio.access-key: admin
- spring.minio.secret-key: dfhjbgdjghGQ
@Bean
public MinioClient getMinioClientVIP() {
log.info(String.format("addresse VIP minio:: %s",
paramsUtils.getEndpoint()));
return MinioClient
.builder()
.endpoint(paramsUtils.getEndpoint())
.credentials(paramsUtils.getAccessKey(),
paramsUtils.getSecretKey())
.build();
}
@Bean
public MinioClient getMinioClientCurrentServer() throws
UnknownHostException {
String localhost = "http://174.18.3.201:8080";
log.info(String.format("addresse local minio:: %s", localhost));
return MinioClient
.builder()
.endpoint(localhost)
.credentials(paramsUtils.getAccessKey(),
paramsUtils.getSecretKey())
.build();
}
}
Présentation de l’interface client
MinIO
et de quelques opérations possibles
sur les dossiers et fichiers
Nous allons présenter l'interface utilisateur de la page
d'accueil, mettant en évidence un répertoire (bucket) spécifique
dédié au projet 'myFacture', ainsi que les objets contenus dans
ses sous-dossiers. Ensuite, nous explorerons un ensemble
d'opérations possibles sur les objets et les dossiers.
chemin d’accès aux
fichiers
Sauvegarde de fichier sur MinIO byte[] bytes =
Base64.getDecoder().decode(dto.getFileToBase64());
Étant donné que MinIO requiert un objet de type InputStream long fileSize = fileInputStream.available();
en entrée, il est essentiel de prendre en compte que le fichier
String mimeType = mediaType.toString();
provenant du frontend est encodé en base 64, quel que soit
String[] fileExtension = mimeType.split("/");
son format (que ce soit xlsx, csv ou autre). Par conséquent, il
est impératif de convertir ce fichier en un InputStream avant if (dto.getExtension() == null) {
if (fileExtension.length == 2) {
d'entreprendre toute opération de sauvegarde vers le serveur dto.setFileName(dto.getFileName() + "." +
MinIO. (Voir l’image à droite) fileExtension[1]);
}
} else {
dto.setFileName(dto.getFileName() + "." +
dto.getExtension());
}
dto.setContentType(mimeType);
dto.setStream(fileInputStream);
dto.setFileSize(fileSize);
MinioClient minioClient = getClientMinio();
Cette méthode permet de formater l'objet qui sera utilisé pour stocker nos données
dans notre système de gestion électronique de documents (GED) :
La méthode bucket() prend en paramètre le nom du bucket, qui est configuré dans
notre fichier application.properties.
.bucket("myfacture")
.object("myfacture/momo/photodeprofile.jpeg")
Cela permet de structurer nos données de manière organisée dans notre système de
stockage MinIO.
Illustration lors du run de la méthode
getFilesPutObjectArgs()
Récupération de fichier depuis MinIO
La récupération des fichiers dans le système de gestion
électronique de documents (GED) s'effectue en se basant sur
le chemin relatif depuis le répertoire racine du bucket.
return fileInputStreamList;
}
- ListObjectsArg vous permet de demander la liste des
éléments dans le répertoire de base d'un bucket. Les
fichiers seront retournés sous forme d'InputStream ;
NB : Les modifications effectuées à un fichier dans MinIO se font en récupérant le fichier par son
nom. Une fois les modifications effectuées, la sauvegarde se réalise en utilisant le même nom de
fichier, ce qui remplace l'ancienne version par la nouvelle.
Suppression de fichier depuis MinIO
– Tout d'abord, nous préparerons l'objet à supprimer en
utilisant la méthode removeObjectArgs de type
RemoveObjectArgs.