[..] Déplacement à distance sur FTP

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
TheoOrl45
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mer. 21 juil. 2010 23:26
Status : Hors ligne

[..] Déplacement à distance sur FTP

#1

Message par TheoOrl45 »

Bonjour,


Dans le cadre d'un petit projet, j'aurai besoin, par un script AutoIt, d'accéder à un FTP distant contenant des sous-dossiers, et de pouvoir déplacer les fichiers (dont je connais à l'avance le nom) d'un de ces sous-répertoires vers la racine du FTP.

Il s'agit d'un déplacement à distance. Je voudrais éviter de télécharger le fichier en local (sur la machine faisant tourner mon script AutoIt) et de l'uploader à la racine du FTP... ça prend de la bande passante pour rien...

Auriez-vous une solution ?
J'ai trouvé des choses sur votre forum, mais ça parle uniquement de télécharger ou d'uploader... mais pas de déplacer sur le FTP...

Merci pour l'aide que vous pourrez m'apporter :-)

Bonne soirée à tous.

--
Théo
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..] Déplacement à distance sur FTP

#2

Message par sksbir »

Bonjour

autoit est magique, mais pas à ce point.

Il n'existe pas de fonction permettant de déplacer des fichiers : ça n'est pas implémenté sur les clients FTP comme filezilla : on ne peut que renommer un fichier, mais pas le déplacer.
ça n'est donc certainement pas implémenté sur les serveurs FTP non plus (je n'ai pas vérifié, mais si c'est pas proposé sur filezilla, c'est que ça n'existe pas) , et aucun client , même généré par autoit ne saurait faire faire cela à un serveur...

Voir réponse plus loin, c'est possible en fait...
Modifié en dernier par sksbir le ven. 01 oct. 2010 14:24, modifié 1 fois.
Sh4dows
Status : Hors ligne

Re: [..] Déplacement à distance sur FTP

#3

Message par Sh4dows »

Si j'ai bien compris : Téléchargement du fichier => Enregistrement en local => Serveur FTP
Sans passer par le pc !

C'est possible en php (il me semble) mais pas en autoit !
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

Re: [..] Déplacement à distance sur FTP

#4

Message par SrBelial »

Je crois au contraire que c'est bien possible !!!

et ceci pour la simple et bonne raison que le déplacement d'un fichier par ftp se fait exactement comme sur un poste client ... aucune fonction compliquée c'est simplement un rename !!!!!!

avez vous déjà remarqué que lorsqu'on déplace même un très gros répertoire d'un endroit du disque à un autre (en restant dans la même partition et tout et tout bien sur), cela se fait très rapidement ?

tout simplement parce que les OS se contentent de faire un "renommage" du chemin complet du fichier qui affecte non pas la partie du chemin correspondant au nom de fichier lui même (test.txt par exemple) mais plutôt C:\test.txt qui devient C:\Windows\test.txt ou inversement

Sur un ftp c'est identique, Filezilla le fait, regarde la console en haut lorsque tu fais glisser un fichier du répertoire dans lequel il est vers le répertoire parent (symbolisé par les deux points " .. ") ! tu observeras que Filezilla exécute la commande RENAME ...

bah c'est pareil pour ton cas.
Exemple pratique :

ftp://root.machin.bidule/répertoire/unfichier.txt

tu fais un rename avec comme nouveau nom :
ftp://root.machin.bidule/unfichier.txt

et voila !
.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<
[/size]
TheoOrl45
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mer. 21 juil. 2010 23:26
Status : Hors ligne

Re: [..] Déplacement à distance sur FTP

#5

Message par TheoOrl45 »

Merci SrBelial !!

Effectivement, un peu avant que tu ne m'indiques ceci, j'avais tenté le rename et j'avais constaté que ça fonctionnait bien comme un "déplacement" :-)

Merci beaucoup.

Puis-je oser une dernier question : je souhaiterai modifier la "date de modification" d'un fichier localisé sur un FTP. Toujours sans le rapatrier en local...

J'ai bien tenté de l'ouvrir avec _FTP_OpenFile, puis d'utiliser FileSetTime sur la variable du fichier, mais ça ne donne rien. Cette méthode est probablement efficace sur des fichiers ouvert avec FileOpen et pas _FTP_OpenFile...

Il s'agit de fichiers mp3 qui sont déplacés et pour lesquels, le déplacement doit laisser sa "marque" au niveau de la date de modification...

Si vous avez une idée, je suis preneur :-)
Merci beaucoup.
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

Re: [..] Déplacement à distance sur FTP

#6

Message par SrBelial »

malheureusement je ne crois pas qu'une telle fonctionnalité puisse être appliquée directement via ftp !

en théorie les dates (création et / ou modification de fichiers) sont censées n'être modifiées que lors d'une action sur le fichier (création et / ou modification du contenu) ...

(après bien entendu il se peut que quelque chose existe pour réaliser ceci, mais je n'en suis guère certain)

J'aurais tendance à proposer la solution suivante :
faire un rename pour déplacer le fichier tout en modifiant légèrement son nom (genre rajouter un " _ " à la fin :toto.mp3_)
et ensuite faire une copie du fichier avec le nom sans le " _ ", puis supprimer le fichier temporaire toto.mp3_

de cette façon tu aura créé en quelque sorte un nouveau fichier, dont la date de création (et la date de modif aussi du coup) correspondra à la date du "déplacement" effectué !

inconvénient : c'est ptetre pas la solution la plus simple pour faire ça !
avantage : normalement pas besoin de DL le fichier en local pour le ré-UP après !

en espérant que cela t'aide !

Cordialement.
.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<
[/size]
TheoOrl45
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mer. 21 juil. 2010 23:26
Status : Hors ligne

Re: [..] Déplacement à distance sur FTP

#7

Message par TheoOrl45 »

Ce n'est effectivement pas la plus simple, mais ça aurait au moins le mérite de fonctionner. Je vais explorer cette voie.

Mais c'est quoi la commande pour "Copier" sur le FTP ? Elle existe elle au moins ? Ou je dois fair un "FTPPut" du FTP vers le FTP ?

Par contre, y a un truc quand même quand tu dis :
en théorie les dates (création et / ou modification de fichiers) sont censées n'être modifiées que lors d'une action sur le fichier (création et / ou modification du contenu) ...
Je suis bien d'accord avec ton raisonnement. Il n'empêche que la méthode FileSetTime (sur des fichiers locaux) le permet quand même, sans forcément faire d'action sur le fichier...
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

Re: [..] Déplacement à distance sur FTP

#8

Message par SrBelial »

alors la ... la commande pour copier ....aucune idée !
certains clients ftp possèdent cette fonctionnalité mais je n'ai aucune idée de comment ça marche !

sinon essaie par un script php peut être ?

Pour ce qui est des fonctions permettant de modifier les dates d'un fichier, je suis bien d'accord avec toi, ça existe, et ça marche plutôt bien, ^__^ (puis c'est parfois pratique)
mon raisonnement servait plutôt à expliquer pourquoi à mon avis c'est normal que ça existe pas chez les serveurs ftp ... ^__^
.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<
[/size]
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Déplacement à distance sur FTP

#9

Message par Tlem »

Mon ami :roll: m'a donné ceci lors de ma recherche : http://en.wikipedia.org/wiki/List_of_FTP_commands
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
peuchere83
Niveau 5
Niveau 5
Messages : 169
Enregistré le : mer. 17 déc. 2008 10:50
Status : Hors ligne

Re: [..] Déplacement à distance sur FTP

#10

Message par peuchere83 »

Le post n'étant pas résolu, j'en profite pour poser une question sur le même thème :
Comment renommer un répertoire à distance ?

J'arrive à renommer un fichier mais je ne comprends pas comment l'appliquer à un répertoire.
Je suppose qu'il faut utiliser la commande :
_FTP_Command

Quelqu'un l'a t'il déjà utilisé ?

Par avance merci.
Tous biens que tu possèdes est un souci qui te retient.
Skippy est là pour t'enlever tous tes soucis.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Déplacement à distance sur FTP

#11

Message par TommyDDR »

Renommer un dossier en un autre :

"Rename Dossier1 Dossier2"

Testé fonctionnel.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
peuchere83
Niveau 5
Niveau 5
Messages : 169
Enregistré le : mer. 17 déc. 2008 10:50
Status : Hors ligne

Re: [..] Déplacement à distance sur FTP

#12

Message par peuchere83 »

Désolé, mais je ne comprends pas :oops:

voici ce que j'ai fais :

Code : Tout sélectionner

$Open = _FTP_Open('MyFTP Control')
$Conn = _FTP_Connect($Open, $server, $username, $pass)
$result = _FTP_Command($Conn, "RENAME Rep1/Test Rep1/Test1Rename")
MsgBox(0,"",$result)

$Ftpc = _FTP_Close($Open)
Où est mon erreur svp ?

Par avance merci
Tous biens que tu possèdes est un souci qui te retient.
Skippy est là pour t'enlever tous tes soucis.
demeereleerea
Niveau 1
Niveau 1
Messages : 1
Enregistré le : ven. 01 oct. 2010 09:58
Status : Hors ligne

Re: [..] Déplacement à distance sur FTP

#13

Message par demeereleerea »

je suis dans le même cas que toi, j'essayé de m'amuser avec cette commande _FTP_command, je n'ai pas d'erreurs mais ça ne fais rien du tout :-(

Code : Tout sélectionner

#include <file.au3>
#include <FTPEx.au3>
DllOpen('wininet.dll')
$server = 'as400'
$username = ''
$pass = ''
$s_FTPCommand = "ls / c:\temp\1.txt"
dim $l_ExpectResponse
dim $l_Context
$Open = _FTP_Open('My FTP Control')
$conn = _FTP_Connect($Open, $server, $username, $pass )
$result = _FTP_Command($conn,$s_FTPCommand)
$Ftpcl = _FTP_Close($open)
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [..] Déplacement à distance sur FTP

#14

Message par sksbir »

SrBelial a écrit :Je crois au contraire que c'est bien possible !!!
...........
Sur un ftp c'est identique, Filezilla le fait, regarde la console en haut lorsque tu fais glisser un fichier du répertoire dans lequel il est vers le répertoire parent (symbolisé par les deux points " .. ") ! tu observeras que Filezilla exécute la commande RENAME ...
Bien vu , comme quoi il y a toujours quelque chose à apprendre 8)
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

Re: [..] Déplacement à distance sur FTP

#15

Message par SrBelial »

^__^

hé oui comme quoi .... c'est ça qui est beau dans la vie, continuer à en apprendre toujours un peu plus chaque jour !

bon sinon à part ça, il est résolu ce post ou non ? parce que ça commence à dater un peu .... merci de penser à le cloturer si c'est bon, ou à le ré-up si les besoins ne sont toujours pas satisfaits !

(sous peine de mise en [R] d'office sur une décision purement unilatéralement arbitraire !)
.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<
[/size]
Répondre