Problème de transfert de gros fichiers via FTP en C#
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 2015
-
21 mai 2008 à 14:53
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
24 mai 2008 à 12:19
Bonjour.
J'utilise actuellement un programme en C# pour transférer un fichier
sur un serveur via FTP. Cependant, la taille de mon fichier augmente
perpétuellement, et résultat, le transfert prend desormais plus de 100 secondes.
Or au bout de 100 secondes, le serveur coupe la connexion. Comment
faire pour la garder active pendant tout ce laps de temps ?
Stream s = ftpR.GetRequestStream();
FileStream fs = new FileStream(info.LocalFile, System.IO.FileMode.Open);
byte[] temp = new byte[fs.Length];
//On remplit ce tableau avec les données du fichier
fs.Read(temp, 0, (int)fs.Length);
//On écrit ces données dans le flux du FTPWebRequest
s.Write(temp, 0, (int)fs.Length);
//On libère les ressources utilisées par les flux
fs.Close();
s.Close();
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 24 mai 2008 à 12:19
Salut,
Les clients FTP envoient en général des commandes sur le canal de commande pour empêcher de tomber en idle, mais dans le même temps les serveurs ont en général des détections de ce genre de chose. C'est sans fin.
Dans ton cas la meilleure solution est probablement de prendre en compte ces coupures et de faire l'envoi en plusieurs fois, si le serveur distant supporte la commande REST.