2012-03-25 5 views
0

Ich habe große Videodateien (~ 100 GB), die auf meinem Computer lokal sind. Ich habe eine nicht-lokale Website, wo ich Informationen über die Videodatei eingeben. Außerdem muss ich die Prüfsumme der Videodatei abrufen (und ich möchte das Skript nicht manuell lokal auslösen und den Wert kopieren und einfügen). Um eine Prüfsumme der Videodatei zu erhalten, habe ich ein Skript, das ich als $ checksum.py <video file> ausführen kann.Remote-Website löst eine lokale Aktion aus

Wie würde ich das lokale Skript über die Webschnittstelle auslösen? Mit anderen Worten, ich möchte in der Lage sein, den PATH der Videodatei einzugeben und auf Senden in der Web-App zu klicken, und es wird das Skript lokal auslösen und (nachdem die Prüfsumme beendet ist) diesen Wert in die Web-App einfügen/Datenbank. Was wäre der beste Weg, dies zu tun?

Antwort

1

Sie können nichts auslösen, es sei denn, Ihr lokales Skript überwacht fortwährend einen Datenfeed (wie eine feste URL, die einen XML/JSON-Feed von Pfaden bereitstellt), der Ihr System übermäßig kompliziert macht.

Sie könnten auch ein Java-Applet lokal anstelle einer Remote-Website verwenden, aber Sie müssen es signieren, um lokale Dateien lesen zu können, und es könnte nicht das sein, wonach Sie suchen.

Denken Sie daran: es geht um Sicherheit. Möchten Sie, dass ein Webserver Skripts auf Ihrem lokalen Computer auslöst? Das würde ich sicherlich nicht tun.

IMHO ist die beste Lösung, das Skript manuell auszulösen, das die Daten an Ihren Webserver sendet.

1

Im Allgemeinen laufen Browser in einer Sandbox, die nur sehr eingeschränkten Zugriff auf das Betriebssystem hat. Insbesondere können Sie Shell-Skripte nicht über einen Browser ausführen. Wie ich es sehe, haben Sie zwei Möglichkeiten:

  1. Ihre checksum.py Skript anpassen Prüfsumme Informationen direkt auf Ihre Website mit den urllib2 Anrufe oder die Ergebisse zu einem „curl“ Befehl zu senden. (Kein Browser beteiligt.)
  2. Schreiben Sie checksum.py als JavaScript mithilfe der FileReader-Klasse um. Dies wird wahrscheinlich kompliziert, langsam und funktioniert nicht im Internet Explorer.
Verwandte Themen