Crash2001 Geschrieben 20. Oktober 2008 Geschrieben 20. Oktober 2008 Hallo zusammen, ich suche ein Downloadscript/dateiverwaltungstool, mit dem man auf dem Webserver Dateien bereit stellen kann. und zwar so, dass der User nicht die wahre URL sieht, sondern für ihn eine URL erstellt wird, die eine einstellbare Zeit gültig bleibt. ideal wäre es mit uploadfunktion und zusätzlich auch der möglichkeit, Dateien die schon auf dem Server liegen auch einzubinden. Schön wäre zudem, wenn man auch mehrere Gruppen erstellen könnte, wer welches File sieht (Gäste ohne einloggen und User die sich einloggen und dann mehr sehen). Kann mir da jemand ein entsprechendes kostenloses (OpenSource evtl?) Tool empfehlen? Bei der Suche per google wird man irgendwie erschlagen von den Ergebnissen und die Hälfte davon ist doch nicht ganz kostenlos uneingeschränkt nutzbar. Vielleicht hat ja jemand von euch schon gute Erfahrungen mit einem der Produkte gesammelt. Gegeben ist das folgende System, auf dem es laufen soll: Root-Server auf Linux-Basis (Debian Etch) mit Apache und PHP, sowie MySQL. Zitieren
.vash Geschrieben 23. Oktober 2008 Geschrieben 23. Oktober 2008 dass Du davon erschlagen wirst kann ich mir gut vorstellen. Ein Tool ist da auch nicht wirklich notwendig, weil es aus Entwicklersicht relativ einfach ist. Die Dateien liegen in einem geschützten Ordner. Ein Skript erstellt bei Bedarf einen Link im Dateisystem auf die Datei in einem vom Webserver lesbaren Ordner und kann darauf verlinken oder redirecten. Dann brauchst Du nur noch ein Aufräumskript dass alle Links aufhebt die älter als x Zeiteinheiten sind. Andere Methode wäre eine "Proxydatei" die eine Datei einliest und direkt an den Browser ausgibt (echo $dateiInhalt vereinfacht gesagt). Diese kann dann ggf. Logindaten prüfen oder arbeitet mit einem "Ticket" der auf Gültigkeit überprüft wird. Ist bei sehr großen auszuliefernden Dateien aber weniger ratsam. Zitieren
Crash2001 Geschrieben 24. Oktober 2008 Autor Geschrieben 24. Oktober 2008 Also wird einfach nur ein Link auf die Datei mit zufälligem string erzeugt in einem Ordner auf den der Apache Zugriff hat und dieser "Link im Link" wird dann mitgeteilt und dadurch kann dann die Originaldatei heruntergeladen werden? sehe ich das richtig? Um das zu realisieren bräuchte ich also einmal eine Liste mit den Originaldateinamen mit Pfad und der Zuordnung der Links mit dem jeweiligen Zeitpunkt wann es ablaufen soll drin. Dann noch einen cron-job o.ä., der alle x Minuten die abgelaufenen Links löscht. Klingt ja gar nicht mal so schwer. Mal schauen, ob ich am WE mal dazu komme, das mal zu testen. Zitieren
.vash Geschrieben 24. Oktober 2008 Geschrieben 24. Oktober 2008 Im Dateisystem von Linux (in der früher meist ext2 oder rfs) kannst Du zwei Arten von Links anlegen. Das eine sind sogenannte Hardlinks. Jede Datei kann davon soweit ich weiß beliebig viele haben - meistens ist es aber nur einer (logisch). Gibt es keinen Link mehr ist diese Datei nicht mehr (mit normalen Mitteln) aufzufinden und kann überschrieben werden (der Befehl zum löschen von Dateien nennt sich aus diesem Grund auch "unlink" - u.a. in PHP, C ...). Da es unter Linux nur Hardlinks gibt, kannst Du also "ganz normal" damit arbeiten da es eine echte Datei ist, bzw. dieselbige repräsentiert. Du hast also richtig erkannt dass ein Link in einem lesbaren Verzeichnis vom Webserver die Datei lesbar macht, wenn Du ihn löscht bleibt die Datei dennoch am alten Ort vorhanden. Ein weitere Eigenschaft von Hardlinks ist, dass die Datei immer gefunden wird, auch wenn Du einen anderen Hardlink an eine andere Stelle verschiebst. Eine andere Art von Links sind symbolische Links. Diese können ggf. auch ins leere zeigen wenn die Datei auf die sie verweisen gelöscht wird. Apache kennt auch eine Option die es erlaubt diesen Links zu folgen. Diese funktioniert in der Regel aber genau wie Hardlinks vollkommen transparent innerhalb des Betriebssystems. (Im Gegensatz zu Verknüpfungen unter Windows, die selber nur eine Datei sind und von Windows erkannt werden, die meisten Programme aber immer den echten Link kennen müssen) Wozu zwei verschiedene Arten? Hardlinks funktionieren nur innerhalb eines geschlossenen (Datei)systems. Also auf eine Partition. Willst Du Links auf Netzlaufwerke oder andere Partitionen anlegen benötigst Du symbolische Links (weil Hardlinks ja nicht möglich sind, die Datei liegt physikalisch außerhalb des eigenen Systems) (Das ist übrigens kein Linux Grundwissen - auch in Windows gibt es Hardlinks) Zitieren
Crash2001 Geschrieben 27. Oktober 2008 Autor Geschrieben 27. Oktober 2008 Ich habe es am WE mal angefangen, aber dabei habe ich dann gemerkt, dass mein PHP-Wissen doch etwas eingerostet ist. Ich denke mal, da muss ich mich mal wieder etwas einarbeiten. Das Grundprinzip dahinter habe ich aber verstanden. Werde mich dann die Tage wenn ich zeit habe noch mal etwas dahinterklemmen. Das mit den Links habe ich schon manuell ausprobiert und funzt. Danke dir für den Tipp damit. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.