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 ?
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 ?