Eine Dateiablage auf einer Website erstellen?

2 Antworten

Ich will wenn möglich vermeiden, ein bereits geschriebenes Programm oder Code zu verwenden.

Warum denn? Ich würde einfach auf ownCloud zurückgreifen.

Da ich aber noch kein Profi bin, werde ich aber wahrscheinlich schlussendlich sowieso darauf zurückgreifen müssen.

Warum tust du es dann nicht einfach, wenn du es jetzt schon weißt?

Wie kann man auf einer Website eine Dateiablage einrichten?

Du brauchst ein Script, welches die Dateien hochlädt. Mit PHP geht dies folgendermaßen: https://www.w3schools.com/php/php_file_upload.asp

Für das Anzeigen der Dateien, kannst du einfach auf ein Verzeichnis ohne index-Datei zurückgreifen. Dann werden standardmäßig, sofern nicht in den Einstellungen des Webservers deaktiviert, alle enthaltenen Dateien mit den jeweiligen Links zum Downloaden angezeigt.

Also jetzt abgesehen von der Hardware, was muss ich alles beachten?

Du musst einiges beachten, damit das ganze sicher wird. Das ganze kann ich dir jetzt nicht hier kurz und knapp erklären, da es ein Thema ist, über das man ganze Bücher schreiben kann. Deine Scripte müssen sicher sein, der Server muss abgesichert werden, die laufenden Prozesse müssen eingestellt werden etc.

Außerdem besteht das Problem, das dein Server von außen erreichbar sein muss. Dazu musst du auf deinem Router Port-Forwarding einrichten. Da allerdings die IP-Adresse dynamisch ist, musst du dir eine statische kaufen oder auf DynDNS zurückgreifen. Ich habe gute Erfahrungen mit https://www.dnshome.de/ gemacht. Auf dem Server müssen die Regeln der Firewall natürlich auch entsprechend eingerichtet werden.

Muss das Ganze in html, css, jQuery oder php gemacht werden oder ist es einfacher über eine Applikation zu machen?

Was ist eine Applikation? Über eine Weboberfläche wird es wohl am bequemsten sein. Alternativ könntest du natürlich auch SFTP nutzen und dir die gesamte Webentwicklung sparen. Dafür brauchen die Clients aber natürlich ein entsprechendes SFTP-Programm/eine SFTP-App. Was sich für dich besser eignet, musst du entscheiden.

ihr könnt mir auch schreiben wenn ihr die Idee ganz anders angehen würdet oder was ihr davon haltet.

Du musst wirklich mit der Sicherheit aufpassen, dass dir dein Server nicht übernommen wird. Warum nutzt du nicht einfach vorhandene Cloud-Lösungen, die darüber hinaus auch zuverlässiger sind?

Ohne konkret auf ihren Lösungsansatz einzugehen würde ich gern nur meine Meinung dazu loswerden.

Und zwar halte ich trotz dem dass man eventuell hier und da ein Paar Einzelheiten lernt es für eine eher schlechte Idee heute noch eine Webseite auf eigener Hardware laufen zu lassen. Es gibt viele Gründe dafür aber der wichtigste ist einfach dass es ganze Teams gibt die 24/7 dafür sorgen dass ihre Server 99.999% online sind um diese dann Menschen wie dir anzubieten. 

Aber dies trifft nur zu wenn dir egal ist was du für einen Speicher nimmst.

Wenn du konkret deinen Rasberry PI als Speicher verwenden willst/musst dann beantworte ich mal ihre Fragen:

Wie kann man auf einer Website eine Dateiablage einrichten?

Dafür ist dein Webserver zuständig.

Webserver sind ganz einfach nur Programme die man auf einem PC startet die einen bestimmten Ordner von außen zugänglich machen. Wenn man also in der URL leiste zum Beispiel deine IP eingibt: 

192.168.178.01

und da hast einen Webserver gerade am laufen, so wird dieser in dem freigestellten Ordner nach einer index.html Datei suchen und diesen an den Browser zurück schicken. 

Wenn man aber eine bestimmte Datei abfragen will, so legt man dies in der URL fest. Nehmen wir an du hast neben der index.html eine datei: text.txt

so würdest du die Datei herunterladen in dem du den folgenden Link in deinem Browser besuchst:

 192.168.178.01/text.txt

Hättest du einen ganzen Ordner mit Dateien und eventuell auch unterordner so greifst du ganz einfach per URL drauf zu: 

192.168.178.01/ordner./.unterordner./.text.txt

(Wenn man keine bestimmte Datei nach der IP eingibt, weiß ein Webserver meistens dass man die Webseite selbst sehen will und sucht deshalb automatisch eine index.html Datei im obersten Ordner. Ist dieser nicht vorhanden wird meist eine Standard 404 Fehlermeldung angezeigt.)

Muss das Ganze in html, css, jQuery oder php gemacht werden oder ist es einfacher über eine Applikation zu machen?

Das ganze geht wie vorhin schon erklärt sogar ohne eine Webseite. Die Daten müssten lediglich im freigestelltem Ordner liegen sowie der Webserver am laufen sein. Schon kannst du per URL auf deine Dateien zugreifen. 

(Der Standard bei Browsern ist so dass Sie direkt die Datei entsprechend herunterladen, oder kurz nochmal nachfragen ob man die Datei herunterladen will, wenn man die Datei per URL abfragt.) 

Da es aber so ist, dass Sie wahrscheinlich lieber eine schöne Seite hätten wo man die Dateien schön ansehen kann und sich eine bestimmte aussuchen können bräuchte man HTML. Dort müssten nur links für jede Datei liegen. 

<a href="./datei.txt">Datei.txt</a>

Wollen Sie aber dass Dateien dynamisch in die Seite gelangen, also eben automatisch alle Dateien die im Ordner sind in der HTML Seite anzeigen, so müssten Sie PHP zur Hilfe nehmen.

Also jetzt abgesehen von der Hardware, was muss ich alles beachten?

Es gibt vieles was man beachten muss jedoch nichts konkretes. 

Dein nächster Schritt sollte erst einmal sein einen Webserver auf dem Rasberry PI zu installieren und diesen dann versuchen von einem seperaten PC im selben Netzwerk per Browser zu erreichen.