Aller au contenu

mc : le client en ligne de commande de MinIO

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.

Un client, plusieurs serveurs S3 mc MinIO Client poste local alias « minio » alias « scaleway » alias « aws » MinIO local 192.168.1.38:9000 Scaleway s3.fr-par.scw.cloud Amazon S3 s3.amazonaws.com
Chaque serveur est enregistré une fois sous un « alias », puis manipulé par son nom court.

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 :

CommandeRôle
mc lsLister les buckets et les objets
mc mbCréer un bucket (make bucket)
mc rbSupprimer un bucket (remove bucket)
mc cpCopier un fichier (--recursive pour un dossier)
mc mvDéplacer un objet
mc rmSupprimer un objet
mc catAfficher le contenu d’un objet
mc statVoir les métadonnées d’un objet
mc duTaille occupée par un bucket ou un préfixe
mc treeAfficher l’arborescence
mc findRechercher 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.

CommandeRôle
mc admin infoÉtat du serveur : espace total, utilisé et disponible
mc admin userCréer et gérer les utilisateurs
mc admin policyGérer les politiques d’accès
mc admin serviceRedémarrer ou arrêter le service
mc admin traceTracer les requêtes en temps réel (débogage)
mc admin healRé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.