ダウンロードパックの修復は、基本的なスクリプトを学んだ方のための実践的な Bash プロジェクトです。イベント主催者が不足・破損した資料を回復できるようにし、正しいファイルと個人メモは保持します。実際に使えるローカルの PDF・テキスト資料一式と、別の対応パックにも再利用できるスクリプトを作ります。
2 個のガイド付きラボでは、独立した信頼できる SHA256 マニフェストから一覧を作り、その結果に基づいて必要な資料だけを HTTP で修復します。1 個の独立したチャレンジでは、資料の組み合わせと破損・不足している項目が変わります。各ラボには独自のファイルとローカルの取得元があり、以前のラボのファイルは不要です。
学習内容
このコースを修了すると、次のことができるようになります。
- 実際のファイルのバイト列を独立した基準と比較し、必要な各資料を一致、不足、不一致に分類する。
- 空白を含むファイル名を保持し、正当な空の資料を認識する。
- curl と正しくエンコードしたリクエストパラメーターを使い、修復が必要な項目だけをダウンロードする。
- 一時候補ファイルを検証してから対象を置き換え、自分の一時ファイルだけを削除する。
- 正しいファイルと無関係なメモのバイト列、権限モード、所有者、変更時刻を保持する。
- ダウンロードリクエストなしで完了済みの修復を繰り返し、実際のローカル PDF・テキスト資料を開いてダウンロードする。
このコースの対象者
すべてのファイルを再ダウンロードするのではなく、回復が必要なファイルの判断を自動化したい Bash 学習者が対象です。
前提知識: Shell for Beginners を修了するか、ターミナルのパス、スクリプト引数、条件分岐、ループについて同等の経験が必要です。SHA256、ファイル名の解析、終了ステータス、curl、一時候補ファイル、クリーンアップ用の trap はガイド付きラボで説明します。PowerShell や音声プレビュープロジェクトの履修は不要です。
学習環境: LabEx は、必要なツール、独自の合成資料、Workspace ターミナル、Download Desk ページを備えたブラウザ上の Linux を提供します。取得元は制御されたローカル HTTP サービスです。外部アカウントやローカルへのソフトウェアのインストールは不要です。画面のラベルとコマンド出力は英語のままです。
よくある質問
チェックサムの一致は、誰がファイルを公開したかを証明しますか?
証明しません。独立して提供され、信頼できると仮定したマニフェストとバイト列を比較します。ハッシュ値はその基準との相違を検出しますが、公開者を認証するものではありません。破損したファイルから基準を作り直してはいけません。
ダウンロードが失敗した場合はどうなりますか?
HTTP による拒否、転送中断、HTTP 200 で返された誤った内容で対象ファイルを置き換えてはいけません。公開はファイル単位です。後の項目が失敗しても、それ以前に検証を終えた修復は残る場合があります。パック全体のトランザクションやクラッシュからの復旧を保証する仕組みではありません。
2 回目の実行では正しいファイルも再ダウンロードしますか?
しません。正当な空の資料も含め、一致するファイルは保持します。完成したパックでの 2 回目の実行はダウンロードリクエストを一切行わず、パックと個人メモを保持します。

