Wie kann eine Chrome-Erweiterung viele Dateien in einem benutzerdefinierten Verzeichnis speichern?

Ich arbeite an einer Chrome-Erweiterung, die als internes Tool verwendet werden soll. Sein erforderliches Verhalten ist:

Aktivieren Sie als Seitenaktion ein Adressleistensymbol, wenn Sie bestimmte Intranetseiten anzeigen.Wenn der Benutzer auf das Symbol klickt, identifizieren Sie alle Dateien eines bestimmten Medientyps (z. B. JPG) auf der Seite undSpeichern Sie sie im Hintergrund in einem Verzeichnis auf dem lokalen Laufwerk des Benutzers.

Diese Frage wurde bereits gestellt, aber die Antwort war dann "benutze NPAPI", undNPAPI ist jetzt verfallen.

Was ist der derzeit verfügbare Weg, um dies zu erreichen? Die, die ich angeschaut habe, sind:

Daschrome.FileSystem API --- Damit werden jedoch keine Dateien an einem vom Benutzer zugänglichen Speicherort gespeichert. Stattdessen sind die gespeicherten Dateienversteckt hinter verschleierten Namen in einem undokumentierten Verzeichnis. Der Benutzer verlangt, dass die Dateien unter ihrem ursprünglichen Namen in einem zugänglichen Verzeichnis gespeichert werden.Das HTML5-Download-Attribut, indem Sie eine Daten-URL erstellen und programmgesteuert darauf klicken. Daraufhin wird für jede Datei ein Dialogfeld "Speichern unter ..." angezeigt, das nicht akzeptiert werden kann, wenn sich auf einer Seite 100 Assets befinden. Der Benutzer verlangt, dass die Dateien ohne weitere Interaktion über den einzelnen Symbolklick hinaus heruntergeladen werden.DasChrome Download API, aber das gibt es nur in den Kanälen beta und dev. Nutzer benötigen diese Erweiterung, um mit Mainstream-Chrome zu arbeiten.Verwenden Sie dieNative Messaging-API indem Sie eine kleine .exe-Datei erstellen, die einfach eine Datei auf der Festplatte speichert, und die .jpg-Datei dann als Blob an sie übergeben. Dies scheint sehr umständlich zu sein und ich bin mir nicht einmal sicher, wie ich große Blobs zuverlässig an solche EXEs weitergeben kann.

Gibt es einen anderen Ansatz, den ich ausprobieren kann?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage