nextcloud Sabre\DAV\Exception\Conflict: HTTP/1.1 409 PUT is not allowed on non-files.

GustlPC

Lt. Junior Grade
Registriert
Nov. 2008
Beiträge
338
Hallo zusammen,

ich habe mir auf einen Webspace von Allinkl NextCloud eingerichtet, hat alles funktioniert.

Nun wollte ich über Perl bei einem Kalender Tasks hinzufügen:

Code:
use Cal::DAV;
use Data::ICal;
use Data::Dumper;

my $url = "http://XXXXX/nextcloud/remote.php/dav/calendars/joe/personal/";
my $user = "joe";
my $pass = "XXXXX";

open FH, ">DEBUG.txt" or die ("Fehler beim schreiben $!");

my $cal = Cal::DAV->new( user => $user, pass => $pass, url => $url);

print $cal->parse(filename => "personal.ics");
$cal->add_entry(make_entry());
$cal->save;

my $dav = $cal->dav;
print FH Dumper($cal);
print FH Dumper($dav);

print "message:".$cal->message;
print "error:".$cal->errors;

sub make_entry {
        my $d = Data::ICal->new( filename => 'personal2.ics' );
        return $d->entries->[0];
}
Message: Server response: put failed Conflict

Also in den Logs vom webdav aufm Server geschaut:
Code:
Fatal	webdav	Sabre\DAV\Exception\Conflict: HTTP/1.1 409 PUT is not allowed on non-files.
[internal function] Sabre\DAV\CorePlugin->httpPut(Object(Sabre\HTTP\Request), Object(Sabre\HTTP\Response))
/www/htdocs/w00c1c26/domains/cloud/nextcloud/3rdparty/sabre/event/lib/EventEmitterTrait.php - line 105: call_user_func_array(Array, Array)
/www/htdocs/w00c1c26/domains/cloud/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 479: Sabre\Event\EventEmitter->emit('method PUT', Array)
/www/htdocs/w00c1c26/domains/cloud/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 254: Sabre\DAV\Server->invokeMethod(Object(Sabre\HTTP\Request), Object(Sabre\HTTP\Response))
/www/htdocs/w00c1c26/domains/cloud/nextcloud/apps/dav/lib/Server.php - line 227: Sabre\DAV\Server->exec()
/www/htdocs/w00c1c26/domains/cloud/nextcloud/apps/dav/appinfo/v2/remote.php - line 30: OCA\DAV\Server->exec()
/www/htdocs/w00c1c26/domains/cloud/nextcloud/remote.php - line 165: require_once('/www/htdocs/w00...')
{main}

Wo hat er denn da einen Konflikt? Über meinem IPhone funktioniert es ohne Probleme.

Hat wer eine Idee ?

Gruß,
Gustl
 
Du bekommst einen HTTP 409.
Die Anfrage wurde unter falschen Annahmen gestellt. Im Falle einer PUT-Anfrage kann dies zum Beispiel auf eine zwischenzeitliche Veränderung der Ressource durch Dritte zurückgehen.
Quelle: https://de.wikipedia.org/wiki/HTTP-Statuscode#4xx_.E2.80.93_Client-Fehler
Hier scheint Nextcloud schlicht PUT nicht so zu erlauben, wie du es benutzt. Für weitere Analyse müsstest du jetzt mal die Funktionen angucken, was da erwartet wird. Interessant wäre, welche Prüfung die Meldung "PUT is not allowed on non-files." generiert. Von da könntest du dich dann weiter durch arbeiten.

Mfg Kae
 
Zurück
Oben