PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Perl + webdav [HTTP::DAV]


mrBean45
29.04.2005, 08:13
Hallo Community,
ich möchte mit perl auf ein webdav verzeichnis zugreifen. Dafür habe ich dieses Modul eingebunden. http://search.cpan.org/dist/HTTP-DAV/DAV.pm (http://search.cpan.org/dist/HTTP-DAV/DAV.pm)

Ich Übergebe mehrere Parameter:
1. Welche Datei ich kopieren möchte.
2. URL von WEBDav
3. Username
4. Passwort

Ich benutze zum testen den GMX Webdav.
https://mediacenter.gmx.net
Ein Zugriff unter Linux (Suse 9.2) funktioniert tadellos.

Das ist mein Code bis jetzt:

#!/usr/bin/perl
use strict;
use HTTP::DAV;
#--- pruefen ob alle Uebergabeparameter etwas enthalten
if ($#ARGV != 3) {
print "usage: localFile targetURL UserName Password\n";
exit;
}

#--- Uebergabeparameter -> Variablen
my $localFile = $ARGV[0]; # lokaler Pfad der zubertragenden Datei
my $targetURL = $ARGV[1]; # Zielpfad
my $UserName = $ARGV[2]; # username fr webdav
my $Password = $ARGV[3]; # passwort fr webdav

print $localFile . " " . $targetURL . " " . $UserName . " " . $Password , "\n";

my $d = new HTTP::DAV;

if ( my $r=$d->credentials(-url=>$targetURL, -user=>$UserName, -pass=>$Password) ) {
print "Login ok\n";
}
else
{
print "Login failed:" . $d->message . "\n";
exit;
}
print "Bis hier alles ok 1 - targetURL: $targetURL - d: $d\n";


if(not $d->open(-url=>$targetURL)) {
print "bloed gelaufen...\n";
die "Couldn't open $targetURL : " . $d->message . "\n";
}

print "danach\n";
#$d->put(-local=>$localFile,-url=>$targetURL . "/daten/");

$d->unlock( -url => $targetURL );

print "Ende\n";


Problem:
Ich kann zwar connecten, aber dann wars das auch schon, der scriptgibt mir noch print "Login ok\n"; aus und wartet dann auf eine weitere Eingabe, wo eigentlich keine sein soll ? Hat irgendwer eine Idee ?


butterkeks
29.04.2005, 16:45
probier mal, mit einem

$| = 1;

irgendwo am Anfang autoflush einzuschalten und schau, ob das darauffolgende print ausgeführt wird.

Ansonsten fällt mir im mom. nichts ein...
Biste mit dem Debugger drüber gegangen?

mrBean45
03.05.2005, 06:51
hi, hat leider nict funktioniert.
Ich habe mir jetzt lokal einen Webdav draufgezogen, probiere es erstmal damit.
Über Erfolgserlebnisse oder auch nicht, werde ich später etwas dazu schreiben.

:)


Danke nochmal.

butterkeks
03.05.2005, 18:04
inwifern hat es nicht funktioniert?

was macht der debugger, nachdem du über die "login ok\n" Zeile gesteppt bist?