📋 Paramètres de Connexion SFTP
| Paramètre | CLI Flag | Type | Requis | Description |
|---|---|---|---|---|
| Hôte | --host |
String | Requis | Adresse du serveur SFTP (ex: sftp.example.com) |
| Port | --port |
Integer | Optionnel | Port SFTP (défaut: 22) |
| Utilisateur | --username |
String | Requis | Nom d'utilisateur pour la connexion |
| Mot de passe | --password |
String | Requis | Mot de passe d'authentification (jamais stocké) |
📂 Paramètres de Transfert
| Paramètre | CLI Flag | Type | Requis | Description |
|---|---|---|---|---|
| Chemin distant | --remote-path |
String | Requis | Chemin du fichier ou dossier sur le serveur SFTP |
| Chemin local | --local-path |
String | Requis | Répertoire de destination local |
| Récursif | --recursive |
Boolean | Optionnel | Active la copie récursive pour les répertoires |
Exemples de Chemins
Fichier unique:
--remote-path /home/user/documents/rapport.pdf
--local-path /mnt/nas/archives/
Répertoire complet:
--remote-path /home/user/photos/
--local-path /mnt/nas/backup/
--recursive
📝 Configuration de la Journalisation
| Paramètre | CLI Flag | Valeurs | Défaut | Description |
|---|---|---|---|---|
| Niveau de log | --log-level |
Verbose, Debug, Information, Warning, Error, Fatal | Information | Niveau de détail des logs |
Niveaux de Log Détaillés
🔍 Verbose
Usage: Débogage très détaillé
Affiche: Toutes les opérations, y compris les détails internes
--log-level Verbose
🐛 Debug
Usage: Développement et diagnostic
Affiche: Informations de débogage, progression détaillée
--log-level Debug
ℹ️ Information (Défaut)
Usage: Utilisation normale
Affiche: Opérations principales, progression, résultats
--log-level Information
⚠️ Warning
Usage: Production, focus sur les problèmes
Affiche: Avertissements et erreurs uniquement
--log-level Warning
❌ Error
Usage: Production minimale
Affiche: Erreurs uniquement
--log-level Error
🌐 Configuration Web (appsettings.json)
L'interface web utilise un fichier appsettings.json pour sa configuration:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://localhost:5000"
}
}
}
}
Options Configurables
| Section | Paramètre | Description | Exemple |
|---|---|---|---|
| Logging | LogLevel.Default | Niveau de log global | "Debug", "Information" |
| Kestrel | Endpoints.Http.Url | URL d'écoute du serveur | "http://localhost:8080" |
| AllowedHosts | - | Hôtes autorisés | "*" ou "example.com" |
💾 Persistance des Données (localStorage)
L'interface web utilise le localStorage du navigateur pour sauvegarder automatiquement certains paramètres entre les sessions.
Données Sauvegardées
| Paramètre | Clé localStorage | Persisté |
|---|---|---|
| Hôte SFTP | sftp_host |
✅ Oui |
| Port SFTP | sftp_port |
✅ Oui |
| Nom d'utilisateur | sftp_username |
✅ Oui |
| Mot de passe | - | ❌ Non (sécurité) |
Effacer les Données Sauvegardées
Pour effacer les paramètres sauvegardés, ouvrez la console de votre navigateur (F12) et exécutez:
localStorage.clear();
⚡ Configuration de Performance
Suivi de Progression
Le système de suivi de progression est configuré pour optimiser les performances:
| Paramètre | Valeur | Description |
|---|---|---|
| Intervalle de mise à jour | 500 ms | Fréquence minimale entre les mises à jour UI |
| Seuil de pourcentage | 10% | Mise à jour forcée tous les 10% de progression |
| Historique des logs (Web) | 50 entrées | Nombre de logs affichés en temps réel |
| Rotation des logs (fichier) | Quotidienne | Nouveau fichier chaque jour |
| Rétention des logs | 10 jours | Les fichiers plus anciens sont supprimés |
src/ProgressStream.cs et web/Services/ProgressReporter.cs.
🔧 Variables d'Environnement
CopyToNas peut également être configuré via des variables d'environnement:
# Niveau de log
export ASPNETCORE_LOGGING__LOGLEVEL__DEFAULT=Debug
# URL de l'application web
export ASPNETCORE_URLS=http://localhost:8080
# Environnement
export ASPNETCORE_ENVIRONMENT=Development
📊 Exemples de Configuration Complète
Scénario 1: Transfert Simple en Production
dotnet run --project src -- \
--host sftp.prod.example.com \
--username backup-user \
--password "SecureP@ssw0rd!" \
--remote-path /data/backup.tar.gz \
--local-path /mnt/nas/backups/ \
--log-level Warning
Cas d'usage: Transfert automatisé avec logs minimaux
Scénario 2: Copie Récursive en Développement
dotnet run --project src -- \
--host sftp.dev.example.com \
--port 2222 \
--username dev-user \
--password "DevPass123" \
--remote-path /var/www/html \
--local-path /home/user/workspace/backup/ \
--recursive \
--log-level Debug
Cas d'usage: Développement avec logs détaillés et port personnalisé
Scénario 3: Interface Web sur Port Personnalisé
cd web
export ASPNETCORE_URLS=http://0.0.0.0:8080
export ASPNETCORE_LOGGING__LOGLEVEL__DEFAULT=Information
dotnet run
Cas d'usage: Serveur web accessible depuis d'autres machines du réseau
✅ Validation de Configuration
- ✓ Serveur SFTP accessible (vérifier avec
pingoutelnet) - ✓ Identifiants SFTP valides
- ✓ Permissions en lecture sur les fichiers distants
- ✓ Permissions en écriture sur le répertoire local
- ✓ Espace disque suffisant pour les transferts
- ✓ Firewall autorisant les connexions sortantes sur le port SFTP