Le MinIO Client, abrégé mc, est l’outil en ligne de commande officiel de MinIO. Il parle le protocole S3 : on l’utilise aussi bien avec un serveur MinIO auto-hébergé qu’avec Amazon S3, Scaleway, OVHcloud ou n’importe quel stockage objet compatible. C’est un peu le couteau suisse du stockage objet — une alternative moderne à ls, cp, rsync, mais pour des buckets.
Installation
Le binaire est unique, sans dépendance. Sous Linux (64 bits) :
curl -LO https://dl.min.io/client/mc/release/linux-amd64/mc chmod +x mc sudo mv mc /usr/local/bin/
Le -L de curl n’est pas optionnel : sans lui, on ne récupère qu’une page de redirection de quelques octets au lieu du vrai binaire de ~25 Mo. Vérifiez toujours l’installation avec mc --version.
Enregistrer un serveur : l’alias
Avant tout, on déclare le serveur avec ses identifiants. La syntaxe attend l’endpoint, puis l’access key et la secret key :
mc alias set minio http://192.168.1.38:9000 ACCESS_KEY SECRET_KEY
Pour éviter de laisser la clé secrète dans l’historique du shell, omettez les clés : mc les demandera de façon interactive, sans les afficher.
mc alias set minio http://192.168.1.38:9000
On liste ensuite les alias connus, et on vérifie que le serveur répond :
mc alias list mc ls minio
Si le serveur est en HTTPS avec un certificat auto-signé, utilisez https:// dans l’alias et ajoutez --insecure aux commandes.
Les commandes du quotidien
Une fois l’alias en place, la cible s’écrit toujours alias/bucket/chemin :
| Commande | Rôle |
|---|---|
mc ls | Lister les buckets et les objets |
mc mb | Créer un bucket (make bucket) |
mc rb | Supprimer un bucket (remove bucket) |
mc cp | Copier un fichier (--recursive pour un dossier) |
mc mv | Déplacer un objet |
mc rm | Supprimer un objet |
mc cat | Afficher le contenu d’un objet |
mc stat | Voir les métadonnées d’un objet |
mc du | Taille occupée par un bucket ou un préfixe |
mc tree | Afficher l’arborescence |
mc find | Rechercher des objets par motif |
Quelques exemples concrets :
# Créer un bucket puis y envoyer un dossier entier mc mb minio/backups mc cp --recursive ~/Documents minio/backups/ # Voir ce que pèse un bucket mc du minio/backups # Récupérer un objet vers le poste local mc cp minio/backups/rapport.pdf .
Synchroniser un dossier : mc mirror
C’est l’équivalent natif de rsync pour le stockage objet, idéal pour une sauvegarde. Par défaut, mirror copie et met à jour ce qui a changé, sans rien supprimer côté serveur :
mc mirror --overwrite ~/Bureau minio/bureau
Pour un miroir strict — où les fichiers effacés en local disparaissent aussi du bucket — on ajoute --remove :
mc mirror --overwrite --remove ~/Bureau minio/bureau
--remove est destructif côté serveur : à réserver quand vous voulez une copie strictement identique, pas un historique. Testez d’abord sans risque avec --dry-run, qui affiche ce qui serait fait sans rien écrire.
Pour une synchronisation continue, mc mirror --watch surveille le dossier et réplique chaque changement à la volée.
Le versionnage, filet de sécurité
Activé sur un bucket, le versionnage conserve les versions précédentes à chaque écrasement — de quoi rattraper une suppression ou une modification malheureuse :
mc version enable minio/backups mc version info minio/backups
La commande mc undo annule la dernière opération d’écriture ou de suppression sur un objet versionné :
mc undo minio/backups/rapport.pdf
Administrer le serveur : mc admin
Cette famille de commandes pilote le serveur lui-même. Elle exige des identifiants administrateur (les clés root de MinIO), pas un simple utilisateur de bucket.
| Commande | Rôle |
|---|---|
mc admin info | État du serveur : espace total, utilisé et disponible |
mc admin user | Créer et gérer les utilisateurs |
mc admin policy | Gérer les politiques d’accès |
mc admin service | Redémarrer ou arrêter le service |
mc admin trace | Tracer les requêtes en temps réel (débogage) |
mc admin heal | Réparer les données (mode distribué) |
Pour connaître l’espace disque réellement disponible sur le serveur, c’est la bonne commande — bien plus fiable que d’interroger un client S3 générique, qui ne connaît souvent pas cette notion :
mc admin info minio
Rendre un objet public
Par défaut les buckets sont privés. Pour exposer un dossier en lecture anonyme (fichiers statiques, images…) :
mc anonymous set download minio/public
Sur les versions plus anciennes de mc, cette commande s’appelait mc policy set. Si anonymous n’est pas reconnu, votre client date un peu — pensez à le mettre à jour.
Pour un partage ponctuel et temporaire, mc share download génère une URL pré-signée valable un temps donné, sans rendre le bucket public.
Quelques options utiles
–recursive (-r)
Applique la commande à tout un dossier ou préfixe.
–dry-run
Simule l’opération sans rien écrire. Indispensable avant un mirror --remove.
–insecure
Accepte un certificat TLS auto-signé.
–json
Sortie en JSON, pratique pour scripter et parser les résultats.
Conclusion
Là où rclone vise la compatibilité avec des dizaines de back-ends, mc se concentre sur l’écosystème S3/MinIO et va plus loin dans l’administration du serveur — espace disque, utilisateurs, politiques, réparation. Pour piloter un MinIO auto-hébergé au quotidien, c’est l’outil le plus direct : un binaire, des alias, et une grammaire de commandes qui rappelle celle du shell Unix.