Einfaches Linux Webinterface für Datendownload

Gast #4543736
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
Gast #4543757
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.
Gast #4543846
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
Angehängte Dateien:
Gast #4543847
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!
Angehängte Dateien:
Gast #4544066
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 :)
Moderator Persönliche Seite #4544071
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.
Gast #4544078
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren