ビデオと字幕 · ダイレクト メディア ダウンローダー
FTPとwgetからダウンロード属性まで:ファイル保存履歴
· 背景
ウェブ履歴 ダウンロード ブラウザ
インターネットからのファイルの保存は、FTP セッションとコマンドライン ツールから単一のブラウザ API に変更されました。この投稿では、その歴史をたどり、ブラウザー専用のダイレクトリンク ダウンローダーがその歴史のどこに位置するかを示します。
ダウンロードはかつてはイベントでした - ダイヤルアップの時代には再開ボタンと夜間転送がありました
接続が遅いため、ファイルの保存が計画されたイベントになりました。ユーザーは経過時間を監視し、電話回線を保護し、中断後に続行できるツールを重視しました。
これらの制約により、キュー、再開、目に見える進捗状況に対する期待が形作られました。最近のインターフェースはシンプルになっていますが、ボタンが小さくなったからといって信頼性機能が不要になったわけではありません。また、夜間の転送の失敗には顕著な機会費用が発生し、最終的な成功メッセージだけでなく、継続と整合性の情報を公開するツールが奨励されました。失敗には目に見える機会コストも伴い、単一の楽観的な完了メッセージではなく、再開の管理と整合性チェックが促進されます。
FTP と初期のファイル転送: 明示的なリモート セッションと個別のリソース
FTP は Web ページよりも古くから存在し、専用プロトコルを通じて明示的なリモート ファイル操作を提供します。そのセッション モードと転送モードは HTTPS フェッチとは大幅に異なるため、「接続ごとに 1 つのファイル」というのは歴史としては広範すぎます。
有益な対照は、ユーザーの意図です。つまり、リモート リソースを選択してバイトをコピーします。 ToolAcre は、バリデーターが暗号化された HTTPS アドレスのみを受け入れるため、FTP を完全に拒否します。 FTP は個別の制御接続とデータ接続、およびいくつかの転送モードを使用できるため、Web 時代の単純化された類似物がプロトコル固有の履歴を置き換えるものではありません。 FTP は個別の制御接続とデータ接続に加えて、いくつかの転送モードを使用できるため、Web 時代の概要によってそのプロトコルの歴史が平坦化されることはありません。
wget、curl、およびコマンド ライン — スクリプト化されたダウンロード、再試行、および最新のツールを形作った習慣
wget やcurl などのコマンドライン クライアントにより、転送がスクリプト可能かつ監視可能になりました。リダイレクト、ヘッダー、出力名、再試行ポリシー、認証、範囲、終了ステータスが構成可能なオプションになりました。
この権限は、承認された自動化を処理する管理者にとって引き続き適切です。ブラウザー ページのアクセス許可領域は小さいため、資格情報、TLS オーバーライド、または ID 変更の再試行を模倣すべきではありません。また、スクリプトによってサイレントミスが再現可能になるため、終了ステータス、検証済みの宛先、および保守的な資格情報の処理が依然として重要です。自動化によりミスも再現可能になり、宛先のレビュー、終了ステータスの処理、および保守的な認証慣行の必要性が維持されます。ログに記録されたコマンドは、共有シェル履歴へのトークンの漏洩を回避する際に監査証拠も作成します。
ダウンロード マネージャーとブラウザーの「名前を付けて保存」 - セグメント化されたダウンロード、再開、ダウンロード バーの時代
ダウンロード マネージャーには、キュー、セグメント化された転送、スケジューリング、および再開が追加されました。ブラウザには、ダウンロード シェルフとネイティブの名前を付けて保存の動作が統合されました。これらのツールは、最初に 1 つのアプリケーション BLOB を構築しなくても、段階的に書き込みを行うことができます。
Direct Media Downloader は、これらの機能と競合しません。これは、明示的な URL ポリシー、ホストのアナウンス、CORS の説明、進行状況、キャンセル、および制限付き単一応答のブラウザーローカル保存を提供します。許可されたリンクを表示するには、ネイティブ ブラウザーでの保存が最も直接的な選択肢であり、このアプリケーションの CORS および Blob メモリの制約を回避できます。表示される承認済みリンクの場合、ネイティブ ブラウザーの保存は引き続きシンプルであり、スクリプト レベルの CORS と BLOB の蓄積を回避できます。
HTML5 のダウンロード属性と BLOB — ブラウザー自体が生成またはフェッチされたファイルを保存する機能をどのように獲得したか
HTML ダウンロード属性を使用すると、アンカーがナビゲーションではなく保存を提案できるようになり、オブジェクト URL を使用すると、生成された BLOB データをスクリプトで一時的に処理できるようになります。これらを組み合わせると、ページが生成またはフェッチしたバイトを提供できるようになります。
ToolAcre はチャンクを受け取り、Blob を構築し、選択されたファイル名で共有ダウンロード ユーティリティを呼び出します。ブラウザの動作は、ダイアログ、フォルダー、複製、完了を制御します。オブジェクト URL は、一時参照がドキュメント内での目的を超えて存続しないように、使用後に保存ユーティリティによって取り消される必要があります。一時オブジェクト URL は、ドキュメント スコープの参照が無期限に利用可能なままにならないように、使用後に取り消す必要があります。
このブラウザ専用ツールが適している場所: 1 つの GET、ストリーミングされたチャンク、1 つの Blob、1 つの保存
この実装はダウンロードのために 1 つの GET を実行しますが、オプションの以前の HEAD でヘッダーを検査できます。進行状況とキャンセルのためにストリーミングされますが、デフォルトの 2 GiB 制限により、1 つの BLOB が組み立てられるまでチャンクが保持されます。
ソースとブラウザの間にサーバーは存在しません。この設計では、ネイティブまたはコマンドラインのダウンロード メカニズムが異なる方法で処理する可能性がある CORS とメモリ コストを受け入れながら、ダイレクト パスを保持します。キャンセルすると部分的なデータが破棄され、インターフェイスはキューに入れられた 2 番目のジョブを提供しません。両方の事実により、完全な転送マネージャーとは区別されます。キャンセルでは部分的なデータが破棄され、別のジョブを開始するキューは存在しないため、この集中的な対話は転送マネージャーとは区別されます。
要点: これまでよりも簡単になりました - ダイレクト メディア ダウンローダーがブラウザー独自の API を使用して、かつては複雑だったジョブを実行する方法
貯蓄は以前の時代よりも簡単に開始できますが、普遍的に解決されるわけではありません。 Direct Media Downloader は、より大きなツールボックス内の 1 つのブラウザー ネイティブ ポイントを表し、その境界を常に表示します。
ホストがクロスオリジン読み取りを許可する場合、許可されたダイレクト HTTPS ファイルとして使用します。サイズ、再開、認証、またはポリシーで別のパスが必要な場合は、ネイティブの [リンクを名前を付けて保存]、承認された転送クライアント、またはソースの公式機能を選択します。最新の利便性は、その限界を理解したときにこそ価値があり、ユーザーがこのメカニズムを悪用することなく、より有能な認可されたメカニズムを選択できるようになります。最新の利便性は、ユーザーがこのブラウザ パスにその機能が含まれているかのように装うことなく、認定された専門家による方法に移動できる場合に最も役立ちます。