Forum: PC-Programmierung Einfaches Linux Webinterface für Datendownload


von Michael Sörensen (Gast)


Lesenswert?

Hallo,

Ich suche eine Möglichkeit, möglichst benutzerfreundlich Daten von einem 
Linux Rechner (sagen wir mal Raspberry) per Webbrowser zum Download 
bereit zu stellen. Im lokalen Netz.

Es sollen also Dateien aus einem (oder einigen wenigen) Verzeichnis(sen) 
auf einer schlichten Webseite zum Download angezeigt werden.

Allerdings sollte das dynamisch sein. Also wenn Dateien dazukommen oder 
gelöscht werden, soll der Inhalt dieser Webseite automatisch 
aktualisiert werden.

Dazu wäre es angenehm, wenn es Optionen zum Löschen, evtl. auch 
Umbenennen und Verschieben gäbe, wobei das erstmal zweitrangig ist. Eine 
Möglichkeit zum Dateiupload wäre dann das höchste der Gefühle.

Ich habe natürlich Lösungen wie Webmin und Co. gefunden, die sind mir 
aber viel zu mächtig.

Ich habe leider schon sehr sehr lange nichts mehr mit Webdesign zu tun 
gehabt. So 15-17 Jahre. Damals schrieb man noch HTML und Javascript von 
Hand, PHP und Co. waren kein Thema.

Verzeiht also meine vielleicht etwas blöde Frage, vielleicht hat ja 
jemand die Geduld mich in die richtige Richtung zu lenken.

Es muss (darf aber ;)) keine fertige Lösung sein, ein Beispiel oder 
zumindest ein Hinweis, wie man sowas heutzutage angeht wäre nett.

Auf dem Rechner läuft grundsätzlich erstmal Apache2 und PHP.

Wenn ich wichtige Informationen verschwiegen haben sollte, liegt das an 
meiner weitgehenden Ahnungslosigkeit auf diesem Gebiet, also bitte 
einfach nachfordern!

Vielen Dank schon mal!

Michael

von S R (Gast)


Lesenswert?

Warum nicht Apache mit aktiviertem Directory Listing?

Umbenennen und Upload via FTP?

von Karl (Gast)


Lesenswert?

Warum nicht ftp, dass sollte rudimentär auch mit jedem Webserver gehen.

von Karl (Gast)


Lesenswert?

ich meinte Webbrowser, nicht Webserver

von Michael Sörensen (Gast)


Lesenswert?

S R schrieb:
> Warum nicht Apache mit aktiviertem Directory Listing?

Ach, das kannte ich noch garnicht. Wieder was gelernt! Vielen Dank!
Damit kann ich mich schonmal weitergooglen ;) Mal sehen, wie da die 
Ausgabe aussieht?

Karl schrieb:
> Warum nicht ftp, dass sollte rudimentär auch mit jedem Webserver gehen.

Ähm, ja... auch eine Möglichkeit. Es sollte halt auch ein klitzekleines 
Bisschen Benutzerfreundlich sein... die Leute sind ja so verwöhnt 
heutzutage ;)
Aber gehen sollte das schon, stimmt. Vielen Dank!

Was grundsätzlich so möglich ist, zeigen ja Webmin und diverse andere 
Pakete in der Richtung.

von Dr. Sommer (Gast)


Lesenswert?

Directory Listing und WebDAV erlauben, geht mit apache mit ein wenig 
Konfiguration ohne Zusatz-Software.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Michael Sörensen schrieb:
> Ach, das kannte ich noch garnicht.

Gibt's aber schon so lange, wie es den Indianer gibt.

von Christopher B. (chrimbo) Benutzerseite


Lesenswert?

Das volle Programm:
Apache, PHP und eXtplorer (http://extplorer.sourceforge.net/)
dann bekommst du sogar gratis Benutzersteuerung :-)

von Stephan G. (Firma: privat) (morob)


Lesenswert?

grins python webserver

von Michael Sörensen (Gast)


Lesenswert?


von Stephan G. (Firma: privat) (morob)


Lesenswert?


von Georg (Gast)


Angehängte Dateien:

Lesenswert?

Michael Sörensen schrieb:
>> Warum nicht ftp, dass sollte rudimentär auch mit jedem Webserver gehen.
>
> Ähm, ja... auch eine Möglichkeit. Es sollte halt auch ein klitzekleines
> Bisschen Benutzerfreundlich sein...

Das kann ja jeder selber regeln, ich benutze z.B. WinSCP, das ist auch 
nicht gerade eine Klickibunti-Anwendung mit animierten Grafiken, Kacheln 
und was man heute so hat, sondern einfach ein Dialog wie im Bild. Danach 
öffnet sich ein Doppelfenster wie beim guten alten Norton Commander. 
Mehr braucht kein Mensch.

Es gibt auch andere FTP-Clienten mit zumutbarer Bedienung, man muss 
nicht mehr zurück zur Kommandozeile.

Georg

von Karl Käfer (Gast)


Angehängte Dateien:

Lesenswert?

Michael Sörensen schrieb:
> Ich suche eine Möglichkeit, möglichst benutzerfreundlich Daten von einem
> Linux Rechner (sagen wir mal Raspberry) per Webbrowser zum Download
> bereit zu stellen. Im lokalen Netz.
>
> Es sollen also Dateien aus einem (oder einigen wenigen) Verzeichnis(sen)
> auf einer schlichten Webseite zum Download angezeigt werden.
>
> Allerdings sollte das dynamisch sein. Also wenn Dateien dazukommen oder
> gelöscht werden, soll der Inhalt dieser Webseite automatisch
> aktualisiert werden.

Nur so eine Idee mit Python + Flask:

Shell:
1
~$ mkdir michael && cd michael
2
michael$ mkdir templates downloads
3
michael$ touch server.py templates/index.html
4
michael$ chmod u+x server.py
5
michael$ for i in hihi haha hoho; do echo $i > downloads/${i}.txt; done

server.py:
1
#!/usr/bin/python
2
import os, sys
3
from flask import Flask, render_template, request, make_response
4
5
app = Flask(__name__)
6
app.config['DOWNLOAD_DIR'] = ['./downloads']
7
8
@app.route('/')
9
def index():
10
    files = list()
11
    for directory in app.config['DOWNLOAD_DIR']:
12
        for filename in os.listdir(directory):
13
            files.append(os.path.join(directory, filename))
14
    return render_template('index.html', files=files)
15
16
@app.route('/dl/<path:filename>')
17
def download(filename):
18
    with open(filename, 'r') as f: body = f.read()
19
    name = os.path.split(filename)[-1]
20
    resp = make_response(body)
21
    resp.headers["Content-Disposition"] = "attachment; filename=%s"%(name)
22
    return resp
23
24
if __name__ == '__main__':
25
    app.secret_key = 'IschLachMischKapott'
26
    app.run(debug=True, host='127.0.0.1', port=8080)

templates/index.html: siehe Anhang.

> Dazu wäre es angenehm, wenn es Optionen zum Löschen, evtl. auch
> Umbenennen und Verschieben gäbe, wobei das erstmal zweitrangig ist. Eine
> Möglichkeit zum Dateiupload wäre dann das höchste der Gefühle.

Das läßt sich leicht einbauen, ich wollte nur einen Startpunkt geben. 
HTH!

von Michael Sörensen (Gast)


Lesenswert?

Ich danke euch allen!
Da sind so viele brauchbare Ansätze, da habe ich erstmal einen Abend gut 
zu tun um die Möglichkeiten auszuprobieren.

WinSCP benutze ich schon, das ist mir allerdings schon etwas "zu 
mächtig", zumindest muss man sich erstmal sehr ausführlich mit chroot 
etc. auseinandersetzen, damit einem da keiner im System rumspielen kann.

eXtplorer sieht erstmal vielversprechend aus, kann aber auf den ersten 
Blick alles, werde ich auf jeden Fall probieren, vielleicht auch für 
andere Anwendungen.

Die Python Lösungen sagen mir auch sehr zu, da ich Python auch sonst 
gerne nutze und es am ehesten in die Richtung geht, die ich mir anfangs 
vorgestellt hatte! Da traue ich mir auch am ehesten zu, dass am Ende so 
erweitern zu könne, wie ich es haben möchte...

Also, ich leg mal los :)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Michael Sörensen schrieb:
> Da traue ich mir auch am ehesten zu, dass am Ende so erweitern zu könne,
> wie ich es haben möchte.

Naja, für den reinen Download bräuchtest du beim Indianer rein gar
nichts erweitern, der funktioniert aus der Dose raus, sofern du
„Options Indexes“ gestattet hast.  Damit wäre diese Variante in 5
Minuten „schlüsselfertig“.

Für den Upload wäre die schon genannte WebDAV-Erweiterung nötig,
wobei man sich dann ggf. aber um Rechtevergabe und -verwaltung
Gedanken machen müsste.

von Michael Sörensen (Gast)


Lesenswert?

Ja, ich denke ich werde alle Varianten mal durchprobieren, es sind ohne 
Zweifel alles gangbare Wege.

Wie eingangs erwähnt, ich bin auf dem Gebiet recht ahnungslos, aber 
gerne bereit durch viel probieren und dabei gesammelte Erfahrungen zu 
lernen.

Auch mit dem alten Apachen muss ich mich wohl nochmal ausführlich 
unterhalten, der kann scheinbar weit mehr als ich bislang auf dem Schirm 
hatte.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.