Schrift
[thread]8[/thread]

FTP-Verbindung dauerhaft erhalten: mehrmaliges einloggen ersparen



<< |< 1 2 >| >> 11 Einträge, 2 Seiten
Strat
 2003-08-15 04:04
#7790 #7790
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=pq,15.08.2003, 01:39]ach ja, noch was zum thema:
mod_perl könnte helfen, da lebt das object nach
dem request noch weiter. weiss nicht, ob das
mit Net::FTP dann geht, aber bei DBI-objekten
klappt das prima.[/quote]
ich versuche gerade, ein testsystem hier bei mir auf mod_perl umzustellen; duerfte aber wohl noch ein paar tage dauern, bis ich es soweit habe...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
FReAK La Marsch
 2003-08-15 03:29
#7791 #7791
User since
2003-08-14
38 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,
ich möchte mir einen kleinen WebFTP Client unter Verwendung von Net::FTP bauen.

Dafür habe ich ein Skript, dass mir je nach Parameter, entweder ein bestimmtes Verzeichnis anzeigt, oder Dateien hochläd, etc...

Nun habe ich jedoch das Problem, dass ich mich dauernd neu auf dem Server einloggen muß, da nach jedem Lauf des Skripts auch die Verbindung zum Server beendet wird. Also auch wenn ich nur ein Verzeichnis wechsel oder so.

Schöner wäre es, wenn ich die Verbindung irgendwie im Hintergrund halten könnte und diese dann ggf. nach einem Timeout selbst beende.

Ich habe deshalb versucht, dass ich das ftp Objekt mittels CGI::Session speicher und dann beim nächsten Aufruf des Skripts wieder verwende, allerdings geht dabei der Socket verloren, so dass ich mich trotzdem neu einloggen muß.

Weiß jemand wie ich es nur unter Verwendung von Perl schaffe eine dauerhafte Verbindung zu erzeugen?

Vielen Dank fürs Nachdenken und noch viel Spaß,
FReAK
pq
 2003-08-15 03:32
#7792 #7792
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
hast du zitterfinger und gleich 6 mal auf abschicken geklickt oder
haben wir hier einen forums-bug?
ich seh diesen beitrag jedenfalls 6 mal in der übersicht (und hatte
nur ein bier, daran kann's also nicht liegen =)

korriegiere: jetzt sieben mal. wo ist ein moderator?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Relais
 2003-08-15 03:34
#7793 #7793
User since
2003-08-06
2246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=pq,15.08.2003, 01:32](und hatte nur ein bier, daran kann's also nicht liegen =)

korriegiere: jetzt sieben mal. wo ist ein moderator?[/quote]
tja, wenn man sie dann mal braucht... 8)

Hab ein Bier, aber das ist ein Clausthaler :)
Erst denken, dann posten --
27. Deutscher Perl- u. Raku -Workshop (Termin wird noch gesucht) 2025 in München.

Winter is Coming
pq
 2003-08-15 03:39
#7794 #7794
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
ach ja, noch was zum thema:
mod_perl könnte helfen, da lebt das object nach
dem request noch weiter. weiss nicht, ob das
mit Net::FTP dann geht, aber bei DBI-objekten
klappt das prima.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
esskar
 2003-08-15 06:25
#7795 #7795
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
wie wärs mit einer art FTP-proxy...
du bastelst dir einen ftp server, den du auf deinem server laufen hast...
anstatt dein ftpwebclient zu veranlassen, sich mit dem ftp server in der welt zu verbinden, verbindet es sich mit deinem ftp-proxy und sagt diesem, was es tun soll.
der ftp-proxy antwortet zum einen mit einer sessionid, zum anderen mit den antworten des ftp-servers in der welt...
solange, der ftpwenclient dem ftp-proxy nicht sagt, dass die sessionid absofort ungültig ist, oder nach einem timeout, schließt der proxy die verbindung nicht...
und wenn der client dem proxy daten schickt, muss er immer diese session id mitschicken....

also ich finde die idee prima! :)

PS: macht auch bestimmt spaß, sowas zu programmieren...
Gast Gast
 2003-08-15 12:48
#7796 #7796
Mit nem Proxy würd es auf jeden Fall gehen, aber ich würd das ganze halt gerne komplett in Perl machen, falls ich es mal auf nen anderen Rechner verschiebe, dann muss ich mich nicht auch noch um den Proxy kümmern.

Perl muss das doch können, Perl kann ja schließlich alles :-)
Strat
 2003-08-15 13:54
#7797 #7797
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Da faellt mir folgende Moeglichkeit ein:
es gibt ein Modul namens HTTP::Daemon, das einen kleinen Webserver in Perl erstellt. Den koennte man mit fork in den Hintergrund leiten, und dann die Verbindungen dorthin weiterleiten.
Dieser Server koennte sich einfach ueber ftp irgendwo anmelden, dann braucht es das Script nicht dauernd machen.

Ein Beispiel dafuer findest du in Poor man's webchat von Randal L. Schwartz oder auf http://www.fabiani.net/ -> Downloads -> 3. Strat's Chatwebserver
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Gast Gast
 2003-08-15 14:04
#7798 #7798
Hi,
klappt das mit fork auch unter Windows?
Ich will ja einen möglichst großebn Einsatzbereich für mein Skript.
Strat
 2003-08-15 14:07
#7799 #7799
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Nein, unter Windows leider nicht, weil da das fork auf Basis von Threads emuliert wird. Du kannst jedoch auch unter Windows ueber system("start parameter programmname") ein neues Script starten, das ist dann so aehnlich wie ein fork...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2003-08-15 04:04.