Lesen Dateien in einem Verzeichnis
Kurti
- perl
Hallo,
im Augenblick lese ich gezielt (durch Angabe der Dateinamen) alle Dateien aus einem Verzeichnis, um ihren Inhalt dann weiter zu verarbeiten. Dies in etwa so:~~~php
$ua = LWP::UserAgent->new();
$req = HTTP::Request->new('GET' => 'http://example.com/datei.html');
Gibt es eine Möglichkeit, die Dateinamen in einem Directory auszulesen und zu sortieren, damit in einer Schleife mit oberem GET die vorhandenen Dateien gelesen werden können?
im Augenblick lese ich ... in etwa so:~~~php
$req = HTTP::Request->new('GET' => 'http://example.com/datei.html');
> Gibt es eine Möglichkeit, die Dateinamen in einem Directory auszulesen?
Sofern example.com dir über eine verfügbare Ressource ein Direcotry Listing anbietet, bzw. du auf example.com ein Script hinterlegen kannst, welches dir dieses liefert: ja. Sonst nicht. Wäre ja auch irgendwie uncool, oder?
im Augenblick lese ich ... in etwa so:~~~php
$req = HTTP::Request->new('GET' => 'http://example.com/datei.html');
> > Gibt es eine Möglichkeit, die Dateinamen in einem Directory auszulesen?
>
> Sofern example.com dir über eine verfügbare Ressource ein Direcotry Listing anbietet, bzw. du auf example.com ein Script hinterlegen kannst, welches dir dieses liefert: ja. Sonst nicht. Wäre ja auch irgendwie uncool, oder?
Warum uncool?
Die Dateien darf ich ja einzeln lesen ("example.com" gehört mir), aber es sind dort keine Scripts möglich.
Ich hatte gedacht, wenn es ein
HTTP::Request->new('GET'... gibt,
gibt es so etwas wie ein
HTTP::Request->new('GETDIR'...?
Ich hatte gedacht, wenn es ein
HTTP::Request->new('GET'... gibt,
gibt es so etwas wie ein
HTTP::Request->new('GETDIR'...?
Du wünscht dir, dass jeder den Inhalt deines Servers lesen kann, wenn er will?
Sei froh dass es nicht geht.
Struppi.
Sei froh dass es nicht geht.
das sind doch nur HTML-Fragmente, die jeder lesen darf!
Sei froh dass es nicht geht.
das sind doch nur HTML-Fragmente, die jeder lesen darf!
Es geht ja nicht darum, was es bei dir konkret ist, sondern ob du es bestimmen darfst oder nicht.
Deine Vorschlag wäre ja, dass jeder das Inhaltsverzeichniss lesen darf wenn er will. Die Praxis ist aber genau andersrum, du musst es explizit zulassen, das ist mr zumindest lieber.
Struppi.
das sind doch nur HTML-Fragmente, die jeder lesen darf!
Es geht ja nicht darum, was es bei dir konkret ist, sondern ob du es bestimmen darfst oder nicht.
Verstehe ich nicht, natürlich darf ich es als Eigentümer bestimmen.
Deine Vorschlag wäre ja, dass jeder das Inhaltsverzeichniss lesen darf wenn er will.
Ja, das darf er bisher schon, da ich ja bisher die Dateien *.html in dem Verzeichnis einzeln lese.
Wenn es um die Berechtigungen geht, könnte ich ja einen Passwortschutz einführen, was ich aber nicht für nötig erachte!
das sind doch nur HTML-Fragmente, die jeder lesen darf!
Es geht ja nicht darum, was es bei dir konkret ist, sondern ob du es bestimmen darfst oder nicht.
Verstehe ich nicht, natürlich darf ich es als Eigentümer bestimmen.
Das verstehe ich wiederum nicht, du hast doch ein Beispielcode gezeigt, der, wenn es nach dir geht, das Verzeichnis irgendeines x-beliebigen Servers liefern soll. Und zwar nicht nach der Entschiedung des Eigentümers, sondern nach dem der es anfordert.
Deine Vorschlag wäre ja, dass jeder das Inhaltsverzeichniss lesen darf wenn er will.
Ja, das darf er bisher schon, da ich ja bisher die Dateien *.html in dem Verzeichnis einzeln lese.
einzeln ja, aber nicht das Inhaltsverzeichniss. Wir sprechen nicht über einen Zugriffsschutz.
Wenn es um die Berechtigungen geht, könnte ich ja einen Passwortschutz einführen, was ich aber nicht für nötig erachte!
Du verstehst nicht. Du kannst deinen Server so konfigurieren (wie es Pragma dir schon gezeigt hat) dass er eine Seite zeigt, die ein Verzeichniss darstellen sollen (es ist auch nur eine HTML Seite, die der Server erzeugt). Das hat nichts mit Passwortschutz zu tun. Dazu reicht Options +Indexes und das fehlen eines Default Dokuments.
Struppi.
Das verstehe ich wiederum nicht, du hast doch ein Beispielcode gezeigt, der, wenn es nach dir geht, das Verzeichnis irgendeines x-beliebigen Servers liefern soll.
Wie kommst Du darauf? Durch das example.com? Das habe ich angegeben, weil ich gelesen habe, dass man keine konkreten Adressen angeben soll.
Ich habe eine Domain, auf der ich CGIs ausführen darf und drei andere wo nicht.
Nur auf die Dateien dieser insgesamt 4 Domains möchte ich zugreifen.
Das verstehe ich wiederum nicht, du hast doch ein Beispielcode gezeigt, der, wenn es nach dir geht, das Verzeichnis irgendeines x-beliebigen Servers liefern soll.
Wie kommst Du darauf? Durch das example.com? Das habe ich angegeben, weil ich gelesen habe, dass man keine konkreten Adressen angeben soll.
Ich habe eine Domain, auf der ich CGIs ausführen darf und drei andere wo nicht.
Nur auf die Dateien dieser insgesamt 4 Domains möchte ich zugreifen.
Irgendwie scheint mir wir reden aneinenader vorbei. Das was du dagst spielt keine Rolle, also ob dir die Domain gehört oder nicht. Der Beispielcode den du gezeigt hast, versucht per http Request ein Verzeichnis lesen und das geht nicht, darf nicht gehen und niemand möchte das es geht.
Struppi.
Warum uncool?
Weil es dritte zunächst nichts angeht, was ich auf meinem Server rumliegen habe.
Die Dateien darf ich ja einzeln lesen ("example.com" gehört mir),
aber es sind dort keine Scripts möglich.
Das ist was anderes: Entweder du sagst dem Apachen, wie er dir Auskunft über den Ordnerinhalt geben soll. Wenn du Glück hast, kannst du das bei deinem Hoster per htaccess konfigurieren.
Oder aber du machst dir auf deinem anderen Server(auf dem du ja offensichtlich scripten darfst) z.b. ne FTP Verbindung(Net::FTP) auf example.com und liest so den Inhalt aus. Oder du erzeugst eine example.com/meinindex.txt, die du dann remote auswertest...
Ich hatte gedacht, es gibt so etwas wie ein
HTTP::Request->new('GETDIR'...?
Sehr pauschal gesagt: Dein Denkschema "Dateien" passt nicht zu dem, wie das mit dem "Internet" so funktioniert.
Hallo,
Das ist was anderes: Entweder du sagst dem Apachen, wie er dir Auskunft über den Ordnerinhalt geben soll. Wenn du Glück hast, kannst du das bei deinem Hoster per htaccess konfigurieren.
Kann ich.
Wenn ich Struppi richtig verstanden habe, genügt hierfür eine .htaccess in dem betreffenden Verzeichnis mit
"Dazu reicht Options +Indexes und das fehlen eines Default Dokuments"
Wie kann ich aber nun im Perl-Programm diese HTML-Datei erzeugen und auslesen?
Lese ich mit dem GET "http://example.com/meinVerzeichnis/?
Und muss ich dann das HTML-Dokument (index of) auswerten?
Oder gibt es dafür Standardroutinen?
Oder aber du machst dir auf deinem anderen Server(auf dem du ja offensichtlich scripten darfst) z.b. ne FTP Verbindung(Net::FTP) auf example.com und liest so den Inhalt aus. Oder du erzeugst eine example.com/meinindex.txt, die du dann remote auswertest...
Welche der beiden Varianten (mod_dir bzw. FTP) ist die bessere?
Danke
Kurti
Welche der beiden Varianten (mod_dir bzw. FTP) ist die bessere?
Ich würde das per Net::FTP angehen!