内部ツールとして使用する Chrome 拡張機能に取り組んでいます。必要な動作は次のとおりです。
- ページ アクションとして、特定のイントラネット ページを表示するときにアドレス バー アイコンを有効にします。
- ユーザーがアイコンをクリックすると、ページ上の特定のメディア タイプ (.jpg など) のすべてのファイルが識別されます。
- それらすべてをユーザーのローカル ドライブのディレクトリにサイレントに保存します。
この質問は以前にもありましたが、当時の答えは「NPAPI を使用する」であり、NPAPI は現在遺棄されています。
それで、これを達成するために現在利用可能な方法は何ですか?私が見たものは次のとおりです。
- chrome.FileSystem API ---ただし、これはユーザーがアクセスできる場所にファイルを保存しません。代わりに、保存されたファイルは、文書化されていないディレクトリ内の難読化された名前の後ろに隠されています。ユーザーは、アクセス可能なディレクトリにファイルを元の名前で保存する必要があります。
- data: URL を作成し、プログラムでクリックすることによる、HTML5 ダウンロード属性。これにより、ファイルごとに「名前を付けて保存...」ダイアログがポップアップ表示されますが、これは 1 ページに数百のアセットがある場合には受け入れられません。ユーザーは、アイコンを 1 回クリックする以外の操作を行わずにファイルをダウンロードする必要があります。
- Chrome Download APIですが、これは beta および dev チャンネルでのみ利用できます。ユーザーは、この拡張機能が主流の Chrome で動作することを必要としています。
- 単純にファイルをディスクに保存する小さな .exe を作成してネイティブ メッセージング APIを使用し、.jpg を blob として渡します。これは非常に面倒なようで、大きなブロブをそのようなEXEに確実に渡す方法さえわかりません。
私が試すことができる別のアプローチはありますか?