DynuFTP se compose d’un jeu de fonctions, fourni par la librairie DLL Dynu.dll. Celles-ci automatisent les transferts de fichiers via une liaison FTP pour le serveur d’application ASP de Microsoft. L’ensemble des commandes FTP traditionnelles est également disponible ; de même que les fonctions ExpressGetFile() et Ex-pressPutFile() qui servent à déposer ou à télécharger un fichier à l’aide d’une simple ligne de code. Active Server Page ne disposant pas de fonctions FTP spécifiques, l’installation de cette DLL enrichit les fonctions du serveur d’application, tout en soulageant le développeur. Cette mise en ?”uvre montre comment insérer les commandes fournies par cette DLL dans un script ASP, de façon à publier ou à sauvegarder votre site en un clic de souris.
1. Installez Dynu.dll
Téléchargez la DLL sur le site dynu.com, puis décompressez l’archive au format Zip dans un répertoire, sous la racine de votre serveur web (“c:inetpubwwwroot” dans le cas de Microsoft IIS (ASP) ou “c:apache group apachehtdoc” si vous utilisez Apache et Chili!ASP pour émuler le serveur ASP de Microsoft). Copiez ensuite le fichier “dynu.dll” dans le répertoire système “c:winntsystem32” et enregistrez cette DLL (“dynu.dll”) au niveau du système. Ouvrez pour cela une fenêtre MS-Dos et saisissez la ligne de commande “regsvr32 Dynu.dll”. Un message s’affiche alors dans une boîte de dialogue, vous confirmant la réussite de l’installation. Une fois cette dernière terminée, démarrez votre serveur web et testez le fichier “dynuftp.asp”. Si la mise en place s’est bien déroulée, vous obtenez des listes de fichiers et de répertoires présents sur le serveur FTP de Dynu. Sinon, répétez cette séquence. Enfin, si vous souhaitez désinstaller cette DLL, saisissez la ligne de commande “regsvr32 Dynu.dll/unregserver”. Vous devrez peut-être redémarrer votre machine afin que la modification de la base de registres soit prise en compte.
2. Créez l’interface d’administration
Bien que toutes les opérations puissent être entièrement automatisées, vous allez créer une interface d’administration de façon à préciser, lors de chaque manipulation, les répertoires d’origine et de destination des fichiers. Pour cela, concevez un formulaire qui contient 2 actions possibles (publication ou backup) et 2 paramètres : les répertoires d’origine et de destination. Pour simplifier le développement, faites pointer le formulaire sur lui-même au niveau de l’attribut “action” de l’élément “FORM”.
3. Récupérez les variables du formulaire
Maintenant, récupérez les variables passées par le formulaire. “cde” sert à aiguiller le programme vers la branche qui correspond à l’action à exécuter (publication ou backup) ; les deux autres variables pourront ainsi être appelées plus simplement tout au long du code.
4. Ouvrez une connexion avec le serveur FTP
Pour effectuer cette étape, vous devez d’abord créer un objet “Dynu.FTP” du côté du serveur ASP. C’est l’objectif de la ligne “set myftp = Server.CreateObject(“Dynu.FTP”)”. Une fois conçu, cet objet sera plus facile à manipuler qu’un code séquentiel. L’action “connect” sert à connecter l’objet. Cette fonction reçoit plusieurs paramètres tels que l’adresse du serveur FTP (adresse IP ou nom de domaine), le login et le mot de passe utilisés pour la connexion, le port et éventuellement le mode d’échange des données (Ascii ou binaire). Pour comprendre ce qui se passe lors de l’exécution du script, ajoutez une condition destinée à indiquer l’état de la connexion.
5. Récupérez les fichiers depuis le serveur FTP
La première action consiste à récupérer le site distant afin de le stocker en lieu sûr dans un répertoire de votre machine ou d’un serveur de backup. Elle est déclenchée par un test sur la variable “cde” qui doit être égale à “1”. Si c’est le cas, récupérez le répertoire courant à l’aide de la méthode “GetCurrentDirectory()”, puis vérifiez qu’il correspond au répertoire d’origine précisé par l’utilisateur. Dans le cas contraire, utilisez la méthode “ChangeDirectory()” de façon à vous positionner dans le bon répertoire. Au passage, vous pouvez afficher le résultat de ces différentes actions afin d’informer l’utilisateur sur le déroulement des opérations. Une fois le curseur positionné dans le bon répertoire, recourez à la méthode “RecursiveDownload(“répertoire de destination”)”. Celle-ci se révèle extrêmement pratique puisqu’elle télécharge tous les fichiers et sous-répertoires situés sous la racine passée en argument. Il est possible d’afficher le nombre de fichiers téléchargés puisque la méthode en retourne le nombre à la fin de son exécution. En revanche, elle ne sait pas compter les répertoires.
6. Publiez les fichiers sur le serveur FTP
La publication des fichiers sur le serveur FTP suit la même logique. Commencez par positionner le curseur dans le bon répertoire de destination sur le serveur FTP, à l’aide de la méthode “ChangeDirectory(“destination”)”. Il se peut que le répertoire n’existe pas sur le serveur FTP. Dans ce cas, le changement de répertoire reste impossible et le répertoire courant doit être différent du répertoire de destination. Un simple test permet de le déterminer et de déclencher la création du répertoire si nécessaire. Une fois le nouveau répertoire conçu, positionnez le curseur à l’intérieur afin d’être prêt à y copier les fichiers. Pour préciser le répertoire local contenant vos fichiers, il suffit d’utiliser la commande FTP “LCD” (“Local Change Directory”). Enfin, si vous souhaitez rendre votre code dynamique, concaténez la commande (“LCD”) et le répertoire d’origine (la variable origine). La méthode “myftp.MPut()” sert alors à télécharger tous les fichiers du répertoire local courant vers le serveur FTP.
7. Fermez la connexion
Une fois toutes les manipulations terminées, coupez la connexion du serveur FTP à l’aide de la méthode “close()”. Vous pouvez afficher au préalable un résumé des fichiers déposés, en listant le répertoire FTP courant à l’aide de la commande “LIST”.
8. Pour aller plus loin
Cette mise en ?”uvre ne montre que les possibilités les plus basiques parmi l’ensemble des commandes disponibles dans la DLL. Plutôt que d’utiliser une interface graphique à base de formulaires, vous pouvez recourir aux méthodes de la DLL pour récupérer un flux de données à l’aide d’un objet “Dynu.http” et de la méthode “GetURL()”. Une fois récupéré, ce flux peut être “parsé” à l’aide de “Dynu.string”, puis envoyé vers votre site grâce à “Dynu.FTP”. Les combinaisons se révèlent multiples puisque la DLL propose près de 15 classes de méthodes, de la vérification de numéro de carte bancaire à la gestion de comptes Pop 3.
🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.