Framework für eine einfache Web-App für das Intranet

Ich muss einen Webserver (Anwendung) erstellen, der es dem Benutzer ermöglicht, einige Dateien hochzuladen, sie irgendwie zu verarbeiten (ein Skript auszuführen) und das Ergebnis als http-Dokument zurückzugeben und optional den Benutzer eine Datei herunterladen zu lassen. Dies gilt für ein privates Intranet (keine ernsthafte Sicherheit erforderlich) und ein geringes Anfragevolumen. Das Betriebssystem sollte Linux sein. Gibt es einen Rahmen für solche Anwendungen?

Wenn Sie Erfahrung mit PHP Javascript und HTML haben, können Sie TinyMCE verwenden .

Antworten (3)

Mit Alfresco können Sie dies tun.

Es ist ein Dokumentenverwaltungsserver, sodass Sie Dateien über die Webschnittstelle oder über WebDAV/FTP/CMIS/usw. hochladen können.

Ein Ordner in Alfresco kann Regeln haben .

Eine Regel hat eine Bedingung und eine Prozedur. Beispiel:

  • Bedingung: Jede Datei, die in diesem Ordner ankommt
  • Verfahren:
    • Erstellen Sie eine Sicherungskopie des Originals im Ordner "Archiv".
    • Konvertieren Sie die Datei in PDF und HTML
    • Verschieben Sie es in den Ordner "Ausgabe".
    • Senden Sie eine E-Mail-Benachrichtigung an den Besitzer der Datei

Bedingungen und Verfahren können so einfach oder so komplex sein, wie Sie möchten. Für die meisten einfachen Aktionen wie die Konvertierung von Dokumenten und das Verschieben von Dateien reicht das Klicken in die Web-Benutzeroberfläche aus, aber für komplexere Dinge können Sie auch Ihre eigenen Aktionen schreiben, in JavaScript oder sogar in Java, wenn Sie es brauchen. Es gibt eine JavaScript-Debugging-Konsole, um diese Aufgabe zu vereinfachen.

Benutzer können alles von Alfresco herunterladen, wenn sie über das richtige Login/Passwort und die richtigen Berechtigungen verfügen.

Alfresco-Regelkonfiguration:

Alfresco-Regelkonfiguration

Kostenlos und Open-Source.

Danke Nicolas, das ist nah. Obwohl ein bisschen schwer, müssen Sie sehen, was die Ressourcenanforderungen sind. Inzwischen habe ich Jupyter und Interactive Python gefunden. Das kommt meinen Bedürfnissen sehr nahe, aber da fühle ich mich zu dumm und kann keine Punkte verbinden ... Wie stopfe ich eine Binärdatei in ein Jupyter-Blatt? Und die Benutzeroberfläche ist nerdig, also würde ich Alfresco bevorzugen ...
.Gibt es so etwas wie Alfresco, aber einfacher/kleiner?

Ich verwende CubicleSoft Admin Pack ständig zum Erstellen von Verwaltungsschnittstellen und interner Software wie Intranets. Vor nicht allzu langer Zeit habe ich FlexForms Modules ein Widget zum Hochladen mehrerer Dateien hinzugefügt , das für Ihre Anforderungen nützlich sein könnte.

Admin Pack ist mein bevorzugtes Tool zum Erstellen von Web-Backends, da es in PHP geschrieben ist und daher auf einem Standard-LAMP/WAMP-Stack ausgeführt wird. PHP ist eine hervorragende serverseitige Skriptsprache. Admin Pack ist nur ein Framework (einer Art), das das Schreiben von Software erfordert, aber ich habe festgestellt, dass kundenspezifische Softwarelösungen normalerweise besser sind als vorgefertigte Software, wenn es um die Rationalisierung von Geschäftsprozessen geht, weil Sie nur das bekommen, was Sie brauchen.

Was die meisten Leute nicht wissen, ist, dass PHP auch eine fantastische Befehlszeilen-Skriptsprache ist. Wenn Sie einen lang andauernden Prozess haben oder einen Prozess als ein anderer Benutzer als der Webserver-Benutzer (z. B. „root“) ausführen müssen, gibt es zwei Möglichkeiten, ein PHP-Befehlszeilenskript auszuführen:

  1. Ein Cron-Job, der regelmäßig (z. B. jede Minute) ausgeführt wird, wobei das Skript in einem bestimmten Verzeichnis nach neuen Dateien sucht, diese verarbeitet und dann die Ausführung beendet, wenn ihm die zu verarbeitenden Dateien ausgehen. Das ist die klassische Quick-n-Dirty-Lösung.

  2. Lösen Sie die Ausführung eines Skripts über Cloud Storage Server /scripts aus . Dies ist viel effizienter, da die Verarbeitung nur ausgelöst wird, wenn etwas zu tun ist. Diese Lösung erfordert jedoch mehr Aufwand bei der Einrichtung und verwischt auch die Grenze zwischen Web- und Systemsicherheit ein wenig.

Ihre Web-App legt hochgeladene Dateien in einem Ordner ab, das Verarbeitungsskript nimmt sie auf und verarbeitet sie, und verarbeitete Dateien werden in einem Ausgabeordner abgelegt, den die Web-App dem Benutzer anzeigen kann. Außerdem sollte eine regelmäßige automatische Bereinigung beider Ordner stattfinden. Diese Art von Workflow ist alles ziemlich üblich.

Standard Apache + PHP bietet bestimmte Sicherheits- und Prozessisolationsmetriken, die Sie in anderen Tools, die eine dynamische Webserverschnittstelle ausgeben, nicht finden werden. Wenn es um offene Ports in der Netzwerkinfrastruktur geht, gilt auch intern: Je weniger, desto besser. Außerdem sollte die Systemsicherheit bei der Auswahl einer Software oberste Priorität haben, da viele erfolgreiche Angriffe auf die Infrastruktur mit der Ausnutzung interner Akteure beginnen (z. B. einen Mitarbeiter davon überzeugen, dass er eine Software ausführen soll, die nicht von Malware-Filtern erfasst wird).

Für eine Quick-n-Dirty-Lösung aus reiner Sicherheitssicht würde ich bei einem paketverwalteten LAMP-Stack bleiben und die langlaufenden Prozessbits mit Befehlszeilen-PHP-Skripting ausfüllen.

Danke schön. ...................................

Vaadin

Wenn Sie mit Java vertraut sind, empfehle ich das Vaadin Framework für die Entwicklung Ihrer Benutzeroberfläche und Ihres Anwendungsservers.

Sie schreiben Ihre Geschäftslogik und Ihren UI-Code in reinem Java. Zur Laufzeit wird dieser Java-Code serverseitig in einem Java-Servlet-Webcontainer ausgeführt. Vaadin rendert Ihre Benutzeroberfläche automatisch mithilfe der HTML5 -Webstandardtechnologie (HTML, CSS, DOM, JavaScript, WebSocket, Push usw.) für die Remote-Anzeige im Webbrowser des Benutzers.

Hier ist das Erstaunliche an Vaadin: Sie müssen nicht alles über HTML, CSS, DOM, JavaScript, WebSocket, Push und dergleichen lernen! Alles, was Sie wissen müssen, ist Java. Vaadin erledigt die ganze Schwerstarbeit, um die webbasierte Benutzeroberfläche, die der Benutzer sieht, dynamisch zu generieren.


(Quelle: vaadin.com )

Vaadin enthält ein Upload-Widget . Ihre serverseitige Java-App kann dann diese hochgeladene Datei manipulieren, eine andere Datei ausgeben und diese neue Datei zum Download anbieten.

Mit Vaadin 8.1 arbeitet das Vaadin-Team an erweiterter Unterstützung für neue HTML5-Drag-and-Drop-Protokolle , die von der Webstandard-Community definiert werden. Dies sollte zu einer reibungsloseren Interaktion beim Ziehen von Dateien aus dem Dateisystem des Benutzercomputers in den Webbrowser und Ihre Vaadin-App führen. Siehe das Drag-and-Drop-Kapitel der Vaadin-Dokumentation.

Das sieht gut aus, insbesondere Drag-and-Drop-Dateien und eine ansprechende Benutzeroberfläche. Aber Java ist für uns eine steile Lernrampe. Vielleicht können wir auslagern. Danke.