Webanwendung als Ersatz für FTP-Server

Ich betreibe einen FTP-Server, um Dokumente zwischen Leuten auszutauschen. Immer weniger Leute wissen, wie man einen FTP-Client benutzt. Daher habe ich letztes Jahr eine Webschnittstelle hinzugefügt, um ihnen das Leben zu erleichtern. Dieses Webinterface (net2ftp) verwendet weiterhin den FTP-Server im Hintergrund. Außerdem habe ich haufenweise Hacks, um einige Funktionen wie die Suche hinzuzufügen.

Ich suche nach einer modernen Webanwendung, um diesen ganzen sterbenden Stapel zu ersetzen.

Anforderungen:

  • Benutzer sollten in der Lage sein, Dateien intuitiv zu durchsuchen/herunterzuladen/hochzuladen/zu suchen
  • 50 % der Benutzer verwenden immer noch FTP, hauptsächlich wegen CLI. Benutzer sollten in der Lage sein, ihre CLI zum Hoch- und Herunterladen von Dateien zu verwenden. Sie sind fortgeschrittene Benutzer, daher muss es nicht so intuitiv sein wie die Webschnittstelle.
  • Konfigurierbar. Normalerweise muss ich meine eigene Authentifizierungsschnittstelle anschließen
  • Gute Protokollierungsmöglichkeiten. Ich habe viele Skripte, die Statistiken und andere Dinge erstellen, also muss ich einfach Informationen darüber extrahieren, was passiert
  • Jeder kann alle Dateien sehen. Bonus, wenn ich den Code nicht patchen muss, um private Uploads zu verbieten
  • Unter der Haube müssen Dateien auf sehr einfache Weise gespeichert werden (keine Git-ähnliche Struktur). Wenn ich den app/filesOrdner sichere, sollte es ausreichen, Dateien zu durchsuchen. Ich bin mir nicht sicher, ob ich es gut erkläre, aber das Hochladen einer Datei test.pdfin einen Ordner foo/barsollte dazu führen, test.pdfdass sie foo/bar auf die Festplatte geschrieben wird (siehe Erläuterung unten).
  • Muss kostenlos und Open Source sein. Wir verwenden nicht-kommerziell (aber ich betrachte es aufgrund der Anzahl der beteiligten Benutzer nicht als persönlichen Gebrauch )
  • Die App muss auf einem Linux-Server ausgeführt werden

Bearbeiten: Klarstellung zur Anforderung "Unter der Haube" .

  • Der Systemadministrator dieses Systems ändert sich stark
  • Wir haben Terabyte an Daten (hauptsächlich weil sehr große Dateien). Daher speichern wir jeden Ordner der ersten Ebene auf einer anderen Festplatte. Ich weiß, dass dies nicht die robusteste Methode ist, aber wenn jemand anderes in ein paar Jahren die Backups benötigt, möchte ich, dass er nur das Etikett auf den Festplatten liest, um die richtige zu finden und die erforderlichen Dateien zu finden dort.
Sind Sie damit einverstanden, FTP durch das modernere (REST-basierte) Protokoll CMIS zu ersetzen ? Es kann über curl/wget/etc verwendet werden und ist dokumentenorientierter als FTP
Ah, die "Under the hood"-Anforderungen schließen die meisten möglichen Lösungen aus ... bist du sicher, dass du das wirklich brauchst? Nahezu alle Dokumentenserver verwenden ihr eigenes Format für Cache-Effizienz und Metadaten.
@NicolasRaoul: Es kann einen separaten Cache haben und Metadaten (wer hat wann hochgeladen, ...) an anderer Stelle (z. B. in einer Datenbank) speichern. Ich brauche jedoch wirklich alle "Dateidaten" in einer für Menschen lesbaren Form.
Eine der "verwandten" Fragen (die Liste rechts) erwähnt monstaftp .

Antworten (1)

Ich schlage NemakiWare vor :

Passt:

  • Intuitive Weboberfläche zum Durchsuchen/Herunterladen/Hochladen/Verschieben/Suchen nach Dateien/Ordnern
  • CMIS-Schnittstelle, einfach in Skripten zu verwenden
  • Anpassbar, um Ihre eigene Authentifizierungsimplementierung zu verwenden
  • Protokolldatei löschen
  • Open Source
  • Läuft auf Linux/Mac/Windows

Außenseiter:

  • Standardmäßig sieht jeder alles, aber tatsächlich können Benutzer das Recht eines Dokuments ändern, und das ist nicht einfach zu deaktivieren.

Art der Passform:

  • Unter der Haube kommt eine NOSQL-Datenbank zum Einsatz. Aber tatsächlich, wenn Sie Dateisystemzugriff auf die Datei benötigen, glaube ich, dass Ihr Bedarf durch die Verwendung von CmisSync abgedeckt ist , um vom Server zu jedem gewünschten Ort auf lokalen oder entfernten Dateisystemen zu synchronisieren.

Haftungsausschluss: Ich habe CmisSync erstellt und arbeite an NemakiWare.

NemakiWare und CmisSync