Deutsch

Video & Untertitel · Untertitel-Toolkit

So wird eine Untertiteldatei bearbeitet, ohne Ihr Gerät zu verlassen: Datei-API für Blob

· Wie es funktioniert

Untertitel Browser-Verarbeitung Datenschutz

Ein Datei-Handle, das in einen Browser-Tab gelangt, im Speicher umgewandelt und als Download zurückgeschrieben wird, ohne Pfad zu einem Server
Original-ToolAcre-Vektorillustration

Die Dateitools von ToolAcre lesen und schreiben Dateien innerhalb der Registerkarte. In diesem Beitrag werden die Browser-APIs erläutert, die dies für eine Untertiteldatei ermöglichen, von der Dateiauswahl bis zum Download-Link, und wie Sie bestätigen können, dass nichts hochgeladen wurde.

Das Transkript ist vertraulich und der Konverter möchte, dass Sie es hochladen – das Problem wird durch die browserseitige Verarbeitung gelöst

Ein Hinterlegungsprotokoll ist keine Datei, die Sie an einen Webdienst übergeben, um herauszufinden, ob die Konvertierung funktioniert. Bei den meisten Online-Konvertern handelt es sich um Upload-and-Return-Konverter: Die Bytes gehen an einen Server, etwas passiert und ein Ergebnis kommt zurück. Bei vertraulichem Material handelt es sich um eine Offenlegung, die bereits erfolgt ist, wenn Sie die Ausgabe sehen.

Durch die browserseitige Verarbeitung wird die Frage entfernt. Die Datei wird von der Seite geöffnet und nicht an sie gesendet, jede Transformation wird für eine Kopie im Speicher ausgeführt und das Ergebnis wird von derselben Registerkarte auf die Festplatte zurückgeschrieben. Die Behauptung ist überprüfbar, was wichtiger ist als die Behauptung, da das Netzwerkpanel zeigt, ob eine Anfrage den Inhalt enthielt.

Auswählen einer Datei: das File-Objekt – wie der Browser der Seite ein Handle für Bytes gibt, ohne sie irgendwohin zu senden

Durch die Auswahl einer Datei über eine Dateieingabe wird nichts übertragen. Die Seite erhält ein File-Objekt, das ein Handle ist: einen Namen, eine Größe, einen Typ und eine Referenz, aus der der Browser lesen kann. Das Auswählen einer Datei ist kein Upload, und das Halten dieses Handles löst keine Anfrage aus. Die Bytes bleiben dort, wo sie sind, bis der Code sie anfordert.

Diese Unterscheidung bildet die gesamte Grundlage der lokalen Verarbeitung und ist auch der Grund, warum die Datenschutzeigenschaft eine Eigenschaft des Codes und nicht des Browsers ist. Eine Seite, die ein File-Objekt enthält, ist durchaus in der Lage, es irgendwo zu veröffentlichen. Was ein Tool lokal macht, ist, dass es das nicht tut.

Text lokal lesen – File.text() und TextDecoder wandeln Bytes in Hinweise im Speicher um

Beim Lesen des Textes wird die Datei-API-Textmethode aufgerufen, die in eine Zeichenfolge aufgelöst wird, die als UTF-8 dekodiert wird. Diese Zeichenfolge wird im Speicher in Hinweise geparst, und jede nachfolgende Operation wirkt sich auf diese Hinweisobjekte aus: Durch Verschieben werden ganzzahlige Millisekunden-Zeitstempel hinzugefügt, durch Bereinigen wird der Text durch Ersetzungen ersetzt, durch die Validierung wird die Liste nach Fehlern in der Reihenfolge und Dauer durchsucht. Nichts davon berührt die Originaldatei, in die nie geschrieben wird.

Da die Analyse einfache Objekte erzeugt, bleibt die Datei auf der Festplatte unberührt, selbst wenn die Registerkarte während der Bearbeitung geschlossen wird. Es gibt keine temporäre Kopie zum Bereinigen und keine teilweise geschriebene Ausgabe, da das Schreiben nur erfolgt, wenn ein Download angefordert wird.

Warum dies im Hauptthread und nicht in einem Web Worker ausgeführt wird und was die Größenobergrenze tatsächlich bewirkt

Die Arbeitsmappengliederung geht davon aus, dass diese Phase in einem Web Worker ausgeführt wird. Bei mehreren ToolAcre-Tools ist dies auch der Fall. Die Apps CSV, Image und PDF verlagern jeweils ihre schwere Arbeit aus dem Hauptthread. Die Untertitel-App tut dies bewusst nicht, und der Grund ist in ihrer eigenen Quelle aufgeführt: Ein Arbeiter würde ein zweites Paket und einen zweiten Fehlermodus für Arbeiten hinzufügen, die dies nicht benötigen, da eine Untertiteldatei mit Spielfilmlänge einige hundert Kilobyte groß ist und in Millisekunden analysiert wird.

Der ehrliche Vorbehalt ist die Größenobergrenze. Vor dem Parsen und Benennen auf der Tool-Seite wird ein Grenzwert von zehn Megabyte erzwungen. Das Tool dokumentiert jedoch, dass die Prüfung für alles, was mit einer Untertitelerweiterung benannt ist, übersprungen wird, sodass eine übergroße Untertiteldatei die Seite lädt und blockiert, anstatt abgelehnt zu werden. Das ist eine echte Konsequenz der Ausführung im Hauptthread und wird dokumentiert und nicht verborgen.

Zurückschreiben: Blob und das Download-Attribut – wie die bearbeitete Datei als neuer Download auf Ihre Festplatte gelangt

Beim Zurückschreiben wird aus dem serialisierten Text ein Blob erstellt und als Download an den Browser übergeben. Der Text wird mit einem expliziten Medientyp umschlossen, der einen UTF-8-Zeichensatz trägt, eine Objekt-URL wird für diesen Blob erstellt, ein Anker mit dem Download-Attribut wird angeklickt und der Anker wird entfernt. Die Datei kommt als neue Datei im Download-Ordner an; Das Original wird nicht verändert.

Der Widerruf erfolgt bewusst verzögert und nicht sofort. Das synchrone Widerrufen der Objekt-URL nach dem Klick kann in einigen Browsern den Download abbrechen, sodass er eine Makroaufgabe später geplant wird, was sowohl sicher als auch zeitnah ist. Dies ist die Art von Detail, die nur angezeigt wird, wenn Downloads zeitweise nicht starten.

Arbeitsbeispiel: Beobachten des Netzwerkpanels während einer vollständigen Konvertierung und Neuzeit – ein ruhiges Panel vom Öffnen der Datei bis zum Speichern der Datei

Objekt-URLs sind der Teil, der durchsickert, wenn niemand zuschaut. Die Lektion wird in den Repository-Helfer geschrieben: Ein geprüftes Projekt hat an mehreren Stellen Objekt-URLs erstellt und sie genau bei Null widerrufen, sodass jede Vorschau ihren gesamten Blob für die Lebensdauer der Registerkarte enthielt. Auf einem Telefon reichen eine Handvoll gerasterter Seiten aus, damit der Browser den Tab beendet.

Die Abhilfe ist eher struktureller als disziplinarischer Natur. Nichts ruft die Browser-API direkt auf; Ein bereichsbezogener Helfer führt Ihren Code mit einer URL aus und widerruft ihn, wenn dieser Code ausgeführt wird, sowohl bei Erfolg, bei Auslösung als auch bei Ablehnung, und ein verwaltetes Handle bietet einen idempotenten Widerruf für die Fälle, die eine einzelne Funktion überdauern. Die korrekte Bereinigung ist die Standardeinstellung und nicht etwas, das sich jeder Anrufstandort merken muss.

Was dies nicht abdeckt – das Tool kann eine Datei, die Sie später an anderer Stelle hochladen, nicht schützen; Der Datenschutz endet dort, wo Ihr Workflow die Registerkarte verlässt

Um zu überprüfen statt zu vertrauen, öffnen Sie das Netzwerkfenster, bevor Sie die Datei auswählen, und lassen Sie es während des gesamten Auftrags geöffnet. Wählen Sie die Datei aus, konvertieren Sie sie, ändern Sie die Zeit und laden Sie das Ergebnis herunter. Beim Laden der Seite werden Anfragen für die Seite und ihre Skripte angezeigt. Was nicht erscheinen sollte, ist eine Anfrage, deren Nutzlast die Datei ist. Bewahren Sie das Protokoll während der gesamten Sitzung auf, damit zwischen den Schritten nichts verloren geht.

Zwei ehrliche Qualifikationen. Eine Seite kann Analyse- oder Werbeskripts von anderen Quellen laden. Diese sind im selben Bereich sichtbar und stellen eine separate Frage dar, unabhängig davon, ob Ihre Datei gesendet wurde. Und die Eigenschaft endet bei der Registerkarte: Ein Tool, das lokal verarbeitet, kann eine Datei, die Sie anschließend per E-Mail versenden, mit dem Cloud-Speicher synchronisieren oder in einen anderen Dienst einfügen, nicht schützen. Die lokale Verarbeitung schränkt die Gefährdung Ihrer eigenen Maschine ein; Es folgt der Datei danach nicht mehr.

Fazit: Ihre Datei, Ihr Tab, Ihre Festplatte – wie das Subtitle Toolkit die gesamte Arbeit lokal erledigt und Sie es überprüfen lässt

Der Pfad besteht aus Dateihandle, In-Memory-Text, In-Memory-Cues, Blob, Download und nichts in dieser Reihenfolge erfordert einen Server. Die Datei wird von der Seite gelesen und nicht an sie gesendet, in Objekte umgewandelt und als neue Datei zurückgeschrieben, wobei das Original durchgehend unberührt bleibt.

Der Grund dafür, dies für vertrauliches Material zu bevorzugen, ist nicht, dass ein Versprechen abgegeben wurde, sondern dass der Anspruch in etwa einer Minute überprüft werden kann. Öffnen Sie zuerst das Netzwerkfenster, erledigen Sie die gesamte Arbeit und lesen Sie das Protokoll. Ein Tool, das lokal verarbeitet, zeigt Ihnen ohne Anfrage ein Panel mit Ihrem Transkript an, was eine stärkere Garantie darstellt als jede Datenschutzrichtlinie.