📋 Prérequis
Avant d'installer CopyToNas, assurez-vous d'avoir:
- .NET 9.0 SDK ou ultérieur installé sur votre système
- Linux (testé) ou système compatible
- Accès à un serveur SFTP (host, port, identifiants)
- Permissions en lecture/écriture sur les répertoires locaux cibles
ℹ️ Note: Pour vérifier si .NET 9.0 est installé, exécutez
dotnet --version
⚙️ Installation
1Cloner le Dépôt
git clone https://github.com/votre-repo/CopyToNas.git
cd CopyToNas
2Restaurer les Dépendances
dotnet restore
Cette commande télécharge toutes les bibliothèques nécessaires:
- Tmds.Ssh (client SFTP)
- Serilog (journalisation)
- System.CommandLine (CLI)
3Compiler le Projet
Pour l'outil CLI:
cd src
dotnet build
dotnet publish -c Release -o ../publish
Pour l'interface Web:
cd web
dotnet build
dotnet publish -c Release -o ../publish-web
🚀 Premier Lancement
Mode CLI (Ligne de Commande)
1Transfert Simple d'un Fichier
dotnet run --project src -- \
--host sftp.example.com \
--username votre-utilisateur \
--password votre-mot-de-passe \
--remote-path /chemin/distant/fichier.txt \
--local-path /chemin/local/destination/
2Copie Récursive d'un Répertoire
dotnet run --project src -- \
--host sftp.example.com \
--username votre-utilisateur \
--password votre-mot-de-passe \
--remote-path /chemin/distant/dossier \
--local-path /chemin/local/destination/ \
--recursive
⚠️ Attention: Le flag
--recursive est requis pour copier des répertoires. Sans ce flag, l'outil retournera une erreur si le chemin distant est un dossier.
Mode Web (Interface Graphique)
1Lancer l'Application Web
cd web
dotnet run
Par défaut, l'application démarre sur http://localhost:5000
2Configurer la Connexion SFTP
Dans l'interface web:
- Entrez l'hôte du serveur SFTP (ex: sftp.example.com)
- Spécifiez le port (par défaut: 22)
- Saisissez votre nom d'utilisateur
- Entrez votre mot de passe
- Cliquez sur "Test Connection" pour vérifier
💾 Sauvegarde Automatique: L'application enregistre automatiquement l'hôte, le port et le nom d'utilisateur dans le localStorage de votre navigateur. Le mot de passe n'est jamais stocké pour des raisons de sécurité.
3Naviguer et Transférer
- Utilisez l'explorateur de fichiers distant pour naviguer dans le serveur SFTP
- Sélectionnez le chemin distant (fichier ou dossier)
- Définissez le chemin local de destination
- Cochez "Récursif" si vous copiez un dossier
- Cliquez sur "Start Copy"
4Surveiller la Progression
L'interface affiche en temps réel:
- 📊 Pourcentage de progression (0-100%)
- ⚡ Vitesse de transfert (B/s, KB/s, MB/s, GB/s)
- ⏱️ Temps restant estimé
- 📝 Logs en direct (50 dernières entrées)
- 📁 Fichier en cours de transfert
✅ Vérification de l'Installation
Test CLI
# Afficher l'aide
dotnet run --project src -- --help
# Vérifier la version
dotnet --version
✓ Succès: Si vous voyez l'aide avec la liste des options disponibles, l'installation CLI est réussie.
Test Interface Web
- Lancez
dotnet rundans le dossierweb/ - Ouvrez un navigateur et accédez à
http://localhost:5000 - Vous devriez voir l'interface CopyToNas avec les champs de connexion
✓ Succès: Si l'interface web se charge correctement, l'installation est réussie.
🔧 Configuration Optionnelle
Journalisation (Logs)
Par défaut, les logs sont affichés dans la console. Pour activer la journalisation dans des fichiers:
# Avec niveau de log personnalisé
dotnet run --project src -- \
--log-level Debug \
--host ... \
# autres paramètres
Niveaux de log disponibles:
| Niveau | Description | Usage |
|---|---|---|
Verbose |
Tous les détails | Débogage approfondi |
Debug |
Informations de débogage | Développement |
Information |
Informations générales | Par défaut |
Warning |
Avertissements | Production |
Error |
Erreurs uniquement | Production minimale |
Port Personnalisé (Interface Web)
cd web
dotnet run --urls "http://localhost:8080"
🎯 Prochaines Étapes
- 📖 Consultez la page de Configuration pour les options avancées
- 📚 Explorez la Référence API pour tous les paramètres disponibles
- 🔍 Testez différents scénarios de transfert pour vous familiariser avec l'outil
❓ Dépannage
Erreur: "Connection refused"
Solutions:
- Vérifiez que le serveur SFTP est accessible (ping, firewall)
- Confirmez que le port est correct (généralement 22)
- Testez la connexion avec un autre client SFTP (FileZilla, WinSCP)
Erreur: "Authentication failed"
Solutions:
- Vérifiez votre nom d'utilisateur et mot de passe
- Assurez-vous que le compte n'est pas verrouillé
- Vérifiez les permissions du compte SFTP
Erreur: "Permission denied" lors de l'écriture locale
Solutions:
- Vérifiez les permissions du répertoire de destination local
- Exécutez avec les permissions appropriées si nécessaire
- Assurez-vous que le chemin de destination existe