Télécharger un fichier avec FTP (1). Imaginons qu'on veuille télécharger,en utilisant le protocole FTP, un fichier local vers une machine distante. On pourra tester le script en utilisant notre propre machine comme une machine distante en ayant pris soin d'activer le partage FTP dans les préférences système.
Le Script : setfichier_a_uploadeto choose file with prompt "Choisissez un fichier à télécharger en FTP" tell application "Fetch 4.0.2"
activate setma_cnxto make new transfer window at beginning with properties {hostname:"localhost", userid:"nom d'utilisateur", password:"mot_de_passe", initial directory:"~/Public/"}
open remote item ("~/Public/Drop Box/") put into transfer window (name ofma_cnx) item fichier_a_uploade format Automatic without uniquename
close window (name ofma_cnx)
end tell
Explications : Grâce à "make new transfer" on crée une nouvelle connexion et comme on l'a associé à "ma_cnx", on pourra la réutiliser ultérieurement afin de ne pas adresser une autre fenêtre. En utilisant "open remote item", on change de répertoire et enfin avec "put into transfer window", on transfert le fichier dont on a mémorisé l'alias avec "choose file". L'option "without uniquename" permet de transférer le fichier en écrasant un éventuel fichier qui porterait le même nom.
Astuces : si on veut obtenir un script plus court on peut aller directement dans la "Drop Box" ou "Boîte de dépôt" sur un Mac OS X en français en utilisant :
set ma_cnx to make new transfer window at beginning with properties {hostname:"localhost", userid:"nom d'utilisateur", password:"mot_de_passe", initial directory:"~/Public/Drop Box/"}
Le caractère "~" désigne le dossier le l'utilsateur courant ce qui évite de taper "/Users/le_nom/" : c'est plus court et ça évite les fautes de frappe.
Afin que le script fonctionne vraiment bien, il faudra changer quelques unes des préférences de Fetch :
- dans "Security" : désactivez "Warn before sending clear text password to secure server"
- dans "Misc" : désactivez "Show new connection dialog at startup"
Télécharger un fichier avec FTP (2). Imaginons qu'on veuille télécharger,en utilisant le protocole FTP, un fichier local vers une machine distante. On pourra tester le script en utilisant notre propre machine comme une machine distante en ayant pris soin d'activer le partage FTP dans les préférences système.
Le Script : setfichier_a_uploadeto choose file with prompt "Choisissez un fichier à télécharger en FTP" tell application "Finder"to setnom_du_fichiertoname of fichier_a_uploade tell application "Transmit 2.5.1" set suppress AppleScript alerts to true
activate setma_cnxto make new document at before front document tellma_cnx
connect as user "nom d'utilisateur" with password "mot_de_passe" with initial path "~/Public/" with connection type FTP to "10.0.1.2"
set their stuff to "~/Public/Drop Box/" delete remote item (nom_du_fichier)
upload item fichier_a_uploade
end tell
close ma_cnx
set suppress AppleScript alerts to false
end tell
Explications : Grâce à "make new document" on crée une nouvelle fenêtre de connexion. Ensuite appellera la fenêtre avec "tellma_cnx" pour lui donner les paramètres de connexion tels que le nom de la machine distante, le nom d'utilisateur et mot de passe et le dossier visé. Ensuite, avec "set their stuff to", on se déplace dans le dossier de destination. Comme il n'y a pas d'option de copie avec écrasement du fichier portant le même nom, on est obligé d'effacer le fichier avant de télécharger le fichier avec "upload item".
Astuces :
si on veut obtenir un script plus court on peut aller directement dans la "Drop Box" ou "Boîte de dépôt" sur un Mac OS X en français en utilisant :
connect as user "connect as user "nom d'utilisateur" with password "mot_de_passe" with initial path "~/Public/Drop Box" with connection type FTP to "10.0.1.2""
on utilise "set suppress AppleScript alerts to true" afin de ne pas recevoir un message d'erreur dans le cas où aucun fichier portant le même nom d'existe.
Télécharger un fichier avec FTP (3).
Imaginons qu'on veuille télécharger,en utilisant le protocole FTP, un fichier local vers une machine distante. On pourra tester le script en utilisant notre propre machine comme une machine distante en ayant pris soin d'activer le partage FTP dans les préférences système.
Le Script : setfichier_a_uploadeto choose file with prompt "Choisissez un fichier à télécharger en FTP" tell application "Finder"tosetnom_du_fichierto name offichier_a_uploade setftpURLto"ftp://nom d'utilisateur:mot_de_passe@localhost/Users/nom d'utilisateur/Public/Drop Box/" &nom_du_fichier tell application "URL Access Scripting"to upload fichier_a_uploade to ftpURL replacing yes without binhexing
Explications : Grâce à l'application "URL Access Scripting" on peut (entre autre) utiliser le protocole FTP. Ceci présente l'extrême avantage de ne pas avoir à possèder un client FTP sur ça machine. On utilse la fonction "upload fichier_a_uploade to ftpURL" qui permet de télécharger un fichier dont on connait la position sur le disque local (connu grâce à "choose file") et de le placer sur la machine distante.
Astuces : afin de connaitre le nom du fichier qu'on a choisit avec "choose file", on est obligé de demander au Finder le nom du fichier "tell application "Finder" to set nom_du_fichier to name of "
on a ajouté l'option "replacing yes" afin d'écraser tout fichier qui porterait le même nom.
il faudra bien sûr remplacer le nom d'utilisateur, le mot de passe et le nom du dossier utilisateur dans "ftpURL" pour que l'exemple fonctionne.