Accueil TechnologiesDocker Minio : alternative open source à Amazon S3
Minio : Alternative Open Source de Amazon S3

Minio : alternative open source à Amazon S3

par Jérémy PASTOURET
Publié : Mis à jour le

Comme vous avez pu le constater dans mes précédents articles, j’aime les projets open source. Et plus particulièrement ceux qui ne se servent pas de vos données. Dernièrement, je vous ai présenté Amazon S3. Personnellement, j’apprécie ce service super pratique qui possède beaucoup de fonctionnalités. Si vous ne savez pas ce qu’est Amazon S3, voici mon article sur le sujet :

AWS – Amazon S3 : stockage de données dans le cloud par Amazon

Qu’est-ce que Minio ?

Qu'est ce que Minio

C’est un programme développé en Golang : il possède la même API qu’Amazon S3. Donc si vous n’avez pas envie de payer Amazon S3 le temps de développer votre service Web, Minio est une bonne solution. Vous pouvez aussi l’utiliser pour faire des tests automatiques avec Jenkins. Et si vous souhaitez partir d’AWS pour installer votre infrastructure sur un autre hébergeur, vous pourrez alors installer Minio et changer uniquement votre fichier de configuration : ça marchera comme d’habitude. Petit bonus, Minio possède une interface Web idéale pour voir les fichiers présents dans sa base de données (comme pour Amazon S3).

Comment installer Minio ?

Minio est scalable (on peut cloner plusieurs machines avec la même source de données). Il s’inscrit dans la nouvelle génération de développement orienté Docker. C’est la raison pour laquelle vous pouvez le tester rapidement ou l’utiliser tout les jours avec Docker. Vous pouvez aussi le mettre sur Kubernetes (l’orchestrateur d’images et de conteneur Docker). Il est également disponible sous Linux, Windows et Mac OS en installation système. Vous pouvez l’installer sur un NAS, Microsoft Azure, Google Cloud Plateform Cloud Foundry, etc…

Le site de Minio est simple et clair : vous y trouverez toutes les explications nécessaires pour l’installation.

Démo de Minio avec Docker

Pour ma démo, j’ai lancé un simple conteneur Minio pour vous montrer l’interface web et la simplicité de mise en place.

docker run -p 9000:9000 --name minio1 -e "MINIO_ACCESS_KEY=root" -e "MINIO_SECRET_KEY=password" -v /home/jeremy/minio/data:/data -v /home/jeremy/minio/config:/root/.minio minio/minio server /data

Si avez tenté de lire ma commande docker, vous avez sûrement remarqué que j’ai tapé « root » comme access key et « password » comme secret code. N’oubliez pas de configurer vos accès à cette étape.

Voici une capture de console pour vous montrer le résultat :

Minio Docker

Comme on peut le voir ci-dessus, on peut accéder à l’interface de Minio grâce aux deux adresses suivantes : http://172.17.0.2:9000 et http://127.0.0.1:9000.

Vous devriez obtenir le même résultat que moi :

BackOffice Minio Login

Une fois connecté, vous obtenez cette interface :

BackOffice Minio Accueil

L’interface ressemble un peu à celle de Dropbox : une liste de fichiers / répertoires et un bouton d’action rapide en bas à droite. A présent, je vous propose de regarder de plus près ce bouton :

Ajouter un bucket sur Minio

Vous pouvez créer un bucket (gros répertoire) : lorsque vous aurez saisi un nom, le système va rafraîchir la liste des buckets dans le menu à gauche.

Liste Bucket Minio

Par la suite, quand vous rajouterez des fichiers en effectuant un drag’n’drop ou en cliquant sur le bouton +, le liste se mettra à jour.

Liste des dossiers MinioPour chaque fichier, un bouton « … » permet de réaliser deux actions :

Action sur les fichiers

Le premier bouton vous donne la possibilité de partager un fichier. Et ce, pendant un temps paramétrable par vos soins : c’est hyper pratique.

Partager un fichier temporairement Minio

La pop-up vous permet de paramétrer facilement le temps de disponibilité du fichier, ainsi que le lien pour y accéder.

La seconde action disponible est la suppression du fichier.

Il y a encore deux autres fonctions que je voudrais vous présenter. Vous pouvez supprimer un bucket, et éditer la policy (c’est-à-dire les droits d’accès au bucket).

Policy Bucket Minio

Vous pouvez le rendre accessible en lecture uniquement, en écriture, ou les deux.

En complément

Côté API, si vous devez interfacer Minio avec une application codée en PHP, vous pouvez utiliser les même outils qu’Amazon S3 et changer la configuration pour que le système envoie les données sur Minio.

Vous devez donc rajouter dans votre configuration un endpoint par l’adresse web de votre serveur Minio et mettre les bonnes informations sur credentials_key et credentials_secret.

Si vous avez des questions sur l’utilisation de Minio, je peux y répondre dans la partie commentaire en dessous.

Petit bonus, sur le blog de Minio vous pouvez dénicher un tutoriel pour monter le service sur un Raspberry Pi. Ca se passe ici : Blog Minio pour Raspberry Pi.

Vous pourriez aussi aimer

3 commentaires

Alma 12 avril 2019 - 17 h 44 min

Bonjour,
Auriez-vous un exemple qui permette de tester facilement les appels d’api sur un navigateur via un restlet par exemple?
Merci.

Répondre
Jérémy PASTOURET 15 avril 2019 - 19 h 50 min

Bonjour,
Je peux vous proposer un exemple mais il me faut un peu de temps pour rédiger l’article.
Si vous avez besoin d’information rapidement, je vous conseille de lire la documentation d’AWS S3.

Répondre
ALMA 16 avril 2019 - 21 h 07 min

Ok, je vais regarder la doc!
Je reste quand même preneur de votre article 🙂

Répondre

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.