\ DriveHQ Customer Support Forum \
Lire/Répondre : 103370/7
  • DriveHQSupport_
  • (676messages)
Exemple de code client FTP (code source C#) : connexion au serveur FTP de DriveHQ

De nombreux utilisateurs nous ont demandé comment se connecter au serveur FTP de DriveHQ depuis leurs projets logiciels. Dans ce message, nous vous proposons d'abord des informations générales sur le protocole FTP, suivies d'un exemple de code source en C#.

DriveHQ propose un service d'hébergement de serveurs FTP. Nous prenons en charge les protocoles FTP et FTPS. L'un des principaux avantages de notre service FTP est son intégration parfaite à notre vaste gamme de services cloud. Les utilisateurs peuvent accéder à leurs fichiers FTP via un navigateur web. lecteur réseau mappé (WebDAV) ou le logiciel client DriveHQ FileManager. Ils peuvent également utiliser notre outil d'administration de groupe en ligne pour créer et gérer des utilisateurs FTP (sous-utilisateurs).

Le protocole FTP standard est considéré comme non sécurisé car il transmet les données sans chiffrement. Pour une sécurité SSL renforcée, vous pouvez utiliser FTPS (FTP sur SSL/TLS). Il existe deux méthodes pour activer la sécurité SSL:

Implicite: Le client FTP se connecte directement à un numéro de port FTPS spécial (par défaut 990) ;

Explicite (FTPES): Le client FTP se connecte au port FTP standard numéro 21, puis envoie une commande STARTTLS pour mettre à niveau la sécurité.

Le serveur FTP de DriveHQ prend en charge les protocoles FTPS et FTPES. La plupart des clients FTP sont compatibles avec ces deux protocoles, notamment FileZilla, CuteFTP, WsFTP, SmartFTP, WinSCP et Fetch.

Il existe un autre protocole de transfert de fichiers sécurisé appelé SFTP, souvent confondu avec « FTP sécurisé ». En réalité, SFTP signifie « SSH File Transfer Protocol », un protocole de transfert de fichiers totalement différent. Du point de vue de la sécurité, SSL/TLS et SSH sont équivalents. Il est clair que SSL/TLS est plus répandu que SSH. Le serveur FTP de DriveHQ ne prend pas en charge SFTP, car nous n'en voyons pas l'utilité.

FTP en mode actif et passif:

Une connexion FTP peut comporter deux connexions TCP (canaux) : le canal de commande et le canal de données. Le canal de commande sert à l'envoi des commandes FTP ; le canal de données, au transfert de gros volumes de données. Le mode FTP actif exige que le serveur FTP se reconnecte au client FTP pour établir la connexion de données. Ce mode est souvent considéré comme non sécurisé et est bloqué par de nombreux pare-feu et routeurs. Le mode FTP passif exige que le client FTP se connecte au serveur FTP sur un port différent. Il est considéré comme sûr et rarement bloqué. Le serveur FTP de DriveHQ prend en charge les deux modes, actif et passif. Toutefois, si votre routeur, pare-feu ou logiciel de sécurité bloque le mode FTP actif, la connexion ne fonctionnera pas. Il est à noter que la plupart des routeurs récents prennent en charge le mode FTP actif.

Remarque : le client FTP en ligne de commande de Microsoft ne prend pas en charge le protocole FTP passif. Presque tous les autres clients FTP prennent en charge les protocoles FTP actif et passif.

FTP et ProFTP

DriveHQ dispose de deux serveurs FTP : ftp.drivehq.com, accessible à tous, et proftp.drivehq.com, réservé aux membres payants (y compris les sous-utilisateurs d'un compte de groupe payant). Comme proftp.drivehq.com est uniquement accessible aux membres payants, l'accès FTP anonyme n'est pas pris en charge. Pour plus d'informations sur notre service d'hébergement de serveurs FTP, veuillez consulter [lien manquant]:

http://www.drivehq.com/servicemanual.aspx#_Toc265186728

 

Exemple de code source d'un client FTP

Le code source C# suivant est fourni tel quel, sans aucun support. Vous pouvez l'utiliser librement dans vos propres logiciels ou le redistribuer. L'exemple de code montre comment se connecter à notre serveur FTP et exécuter des commandes FTP telles que LIST, GET et PUT ; vous pouvez également voir comment le configurer pour utiliser le protocole FTP passif et SSL.


en utilisant le système ;
utilisation de System.Collections.Generic ;
utilisation de System.Linq ;
utiliser System.Text;
utilisation de System.Threading.Tasks ;
utilisation de System.Net ;
utilisation de System.IO ;
utilisation de System.Security.Cryptography.X509Certificates ;

///
/// Droits d'auteur (c) 2003-2016, Siège social de Drive, Inc. 
/// 
/// L'exemple de code du client FTP montre comment se connecter au serveur FTP de DriveHQ en utilisant C#.
/// Vous pouvez utiliser ou redistribuer gratuitement le code. Le code est fourni TEL QUEL, sans aucune garantie 
/// DriveHQ ne fournit aucune assistance ni garantie et décline toute responsabilité quant à l'utilisation du code.
///
espace de noms FTPClientSample
{
    Programme de classe
    {
        static string ftpServer = "ftp.drivehq.com"; // vous pouvez également utiliser proftp.drivehq.com si vous avez un compte payant.
        static string username = "VOTRE_NOM_D'UTILISATEUR"; // Votre nom d'utilisateur DriveHQ
        static string password = "VOTRE_MOT_DE_PASSE"; // Votre mot de passe DriveHQ
        statique void Main(chaîne[] args)
        {
            // Lister un dossier sur le serveur FTP
            //Liste("/"); 

            // Télécharger un fichier depuis le serveur FTP
            //TéléchargerFichier("NomFichierServeur.jpg", @"c:\temp\NomFichierClient.jpg");

            // Téléversez un fichier sur le serveur FTP
            UploadFile(@"c:\temp\ClientFileName.jpg", "/temp/ServerFileName.jpg");
        }


        ///
        /// Téléversez un fichier sur le serveur FTP.
        ///
        /// chemin d'accès à un fichier local
        /// le chemin sur le serveur FTP, tel que /temp/nom_du_fichier
        ///
        public static bool UploadFile(string srcFilePath, string destFilePath = null)
        {
            si (String.IsNullOrWhiteSpace(srcFilePath))
                lancer une nouvelle exception ArgumentNullException("Chemin du fichier source.");

            si (String.IsNullOrWhiteSpace(destFilePath))
                destFilePath = Path.GetFileName(srcFilePath);

            Uri serverUri = GetUri(destFilePath);

            // L'URI du serveur doit commencer par le schéma ftp://.
            si (serverUri.Scheme != Uri.UriSchemeFtp)
                renvoyer faux ;

            Requête FtpWeb = CréerRequêteFtp(serveurUri, WebRequestMethods.Ftp.TéléchargerFichier);

            // lire le contenu du fichier dans un tableau d'octets
            FileStream sourceStream = new FileStream(srcFilePath, FileMode.Open, FileAccess.Read);
            byte[] fileContent = new byte[sourceStream.Length];
            sourceStream.Read(fileContent, 0, fileContent.Length);
            sourceStream.Close();

            // envoyer le contenu du fichier au serveur FTP
            requête.LongueurContenu = fichierContenu.Longueur;
            Flux de requête = requête.GetRequestStream();
            requestStream.Write(fileContent, 0, fileContent.Length);
            flux de requête.Fermer();

            Réponse FtpWeb = (RéponseFtpWeb)request.GetResponse();
            Console.WriteLine("Statut de la réponse : {0} - {1}", response.StatusCode, response.StatusDescription);

            renvoyer vrai ;
        }

        ///
        /// Téléchargez le fichier source (srcFilePath) depuis le serveur FTP vers le fichier de destination (destFilePath). Si ce fichier est nul, enregistrez-le dans le dossier courant.
        ///
        ///
        ///
        ///
        public static bool DownloadFile(string srcFilePath, string destFilePath = null)
        {
            si (String.IsNullOrWhiteSpace(srcFilePath))
                lancer une nouvelle exception ArgumentNullException("Chemin du fichier source.");

            si (String.IsNullOrWhiteSpace(destFilePath))
                destFilePath = Path.GetFileName(srcFilePath);

            Uri serverUri = GetUri(srcFilePath);

            //// L'URI du serveur doit commencer par le schéma ftp://.
            si (serverUri.Scheme != Uri.UriSchemeFtp)
                renvoyer faux ;

            Requête FtpWeb = CréerRequêteFtp(serveurUri, WebRequestMethods.Ftp.TéléchargerFichier);

            Réponse FtpWeb = (RéponseFtpWeb)request.GetResponse();
            Flux de réponse = réponse.GetResponseStream();

            FileStream fileStream = new FileStream(destFilePath, FileMode.OpenOrCreate, FileAccess.Write);

            byte[] buffer = nouveau byte[32 * 1024];

            tant que (vrai) {
                int bytesRead = responseStream.Read(buffer, 0, buffer.Length);
                si (octetsLus == 0)
                    casser;

                fileStream.Write(buffer, 0, bytesRead);
            }
            fileStream.Close();

            Console.WriteLine("Statut de la réponse : {0} - {1}", response.StatusCode, response.StatusDescription);

            renvoyer vrai ;
        }

        ///
        /// Lister le contenu d'un dossier FTP
        ///
        ///
        ///
        public static string List(string path)
        {

            Uri serverUri = GetUri(chemin);

            //// L'URI du serveur doit commencer par le schéma ftp://.
            si (serverUri.Scheme != Uri.UriSchemeFtp)
                retour ""; 

            FtpWebRequest requête = CreateFtpRequest(serverUri, WebRequestMethods.Ftp.ListDirectory);

            Réponse FtpWeb = (RéponseFtpWeb)request.GetResponse();
            StreamReader sr = new StreamReader(response.GetResponseStream());
            résultat de chaîne = sr.ReadToEnd();
            Console.WriteLine("Statut de la réponse : {0} - {1}", response.StatusCode, response.StatusDescription + "\r\n" + result);

            renvoyer le résultat ;
        }

        méthode statique privée FtpWebRequest CreateFtpRequest(Uri serverUri, chaîne de caractères)
        {
            Requête FtpWebRequest = (FtpWebRequest)WebRequest.Create(serverUri);
            requête.ActiverSsl = vrai ;
            requête.UsePassive = vrai;
            requête.UseBinary = vrai ;
            requête.KeepAlive = vrai ;
            requête.Credentials = new NetworkCredential(nom_utilisateur, mot_de_passe);
            requête.Méthode = méthode;

            demande de retour ;
        }

        privée statique Uri GetUri(string cheminFichierDistant)
        {
            Uri ftpServerUri = new Uri("ftp://" + ftpServer);
            renvoie un nouvel Uri(ftpServerUri, cheminFichierDistant);
        }

    }
}
 

10/05/2016 19:01:04

  • ajayreigns
  • (1messages)
Sujet: J'ai besoin de code VB.NET pour me connecter à un compte DriveHQ PRO
J'ai besoin de code VB.NET pour me connecter à un compte DriveHQ PRO

Veuillez partager le code Visual Basic .NET pour vous connecter à votre compte PRO Drive


Répondre
19/11/2016 00:25:49

  • arsene16pcs017
  • (1messages)
Sujet: Re: Exemple de code client FTP (code source C#) : connexion au serveur FTP de Dr...
Re: Exemple de code client FTP (code source C#) : connexion au serveur FTP de DriveHQ

 Bonjour ! J’ai conçu mon projet web. Pourriez-vous me fournir toutes les étapes pour partager mes fichiers (texte, vidéos, audio) sur le cloud afin qu’ils soient accessibles à d’autres personnes ? Je cherche également la procédure et le code pour télécharger et téléverser des fichiers sur DriveHQ. Merci


Répondre
15/01/2018 22:32:28

  • DriveHQSupport_
  • (676messages)
Sujet: Re : Exemple de code client FTP (code source C#) : connexion au serveur FTP de D...

Utilisateur: arsene16pcs017  -  15/01/2018 22:32:28

Re: Exemple de code client FTP (code source C#) : connexion au serveur FTP de DriveHQ

 Bonjour ! J’ai conçu mon projet web. Pourriez-vous me fournir toutes les étapes pour partager mes fichiers (texte, vidéos, audio) sur le cloud afin qu’ils soient accessibles à d’autres personnes ? Je cherche également la procédure et le code pour télécharger et téléverser des fichiers sur DriveHQ. Merci

Re : Exemple de code client FTP (code source C#) : connexion au serveur FTP de DriveHQ

Merci de nous avoir contactés. 

Vous devriez trouver les réponses à toutes vos questions de base concernant le partage et la publication dans notre manuel de service: https://www.drivehq.com/ServiceManual.aspx. Si vous avez des questions spécifiques, veuillez envoyer un courriel support@drivehq.com et nous ferons de notre mieux pour vous aider. 

 

Merci,
Assistance DriveHQ


 


Répondre
16/01/2018 08:32:57

  • glorber
  • (1messages)
Sujet: Re: Exemple de code client FTP (code source C#) : connexion au serveur FTP de Dr...
Re: Exemple de code client FTP (code source C#) : connexion au serveur FTP de DriveHQ

Je développe une application iOS en Swift. Cette application génère un fichier de données JSON que je souhaite pouvoir transférer entre l'application et DriveHQ, et inversement.

Pourriez-vous partager un exemple de code Swift pour se connecter au serveur FTP de DriveHQ ?

Merci.


Répondre
22/09/2018 06:59:05

  • stleojohn
  • (1messages)
Sujet: Re: Exemple de code client FTP (code source C#) : connexion au serveur FTP de Dr...
Re: Exemple de code client FTP (code source C#) : connexion au serveur FTP de DriveHQ

 J'obtiens une erreur d'exception inconnue lorsque j'essaie ce code. Pouvez-vous m'aider


Répondre
26/11/2019 20:42:14

  • DriveHQ Support
  • (32messages)
Sujet: Re : Exemple de code client FTP (code source C#) : connexion au serveur FTP de D...

Utilisateur: stleojohn  -  26/11/2019 20:42:14

Re: Exemple de code client FTP (code source C#) : connexion au serveur FTP de DriveHQ

 J'obtiens une erreur d'exception inconnue lorsque j'essaie ce code. Pouvez-vous m'aider

Re : Exemple de code client FTP (code source C#) : connexion au serveur FTP de DriveHQ

Veuillez publier votre extrait de code et le message d'erreur. Veuillez également le tester avec FileZilla pour vérifier que votre réseau n'empêche pas la connexion FTP.


Répondre
26/11/2019 21:32:26

  • liveieee
  • (2messages)
Sujet: Programme client FTP Python
Programme client FTP Python

Pourriez-vous partager la version Python pour DriveHQ


Répondre
31/12/2019 04:28:41

Ajouter aux favoris et partager
Réponse rapide

Leading Cloud Surveillance service

Leading Enterprise Cloud IT Service Since 2003