タイトルの通りなのでまずはローカルサービスとして書いていくぞ。
根本的には公開されているZipファイルを確認したかっただけなのでそこだけサポートするとすると
入力要件は下記となる。
- フロント: zipファイルのURLを入力する
- API: zipファイルのURLをパラメタとする
- 共通: ファイル種類はzipのみとする
描画自体は後でもよいのでAPIで再帰リストとして返却してくれればよい。
- API: ディレクトリ情報は再帰リストで返却
- フロント: ディレクトリツリーライブラリへレスポンスを入れる
とりあえずここまで書いてみる。
それ以降については上記ができてから考える。テトリスとか終わってないからね。
名前
compiew
実装機能
ブラウジング(キャッシング->ブラウジングという流れ)
- キャッシング
- 外部サイトリンク経由でのダウンロード
- 本サービス内部でダウンロード
部分操作
- 部分的にダウンロードする。
- 改めてZip化等を行い、DL。
インフラ
- backend: go
- frontend: typescript+react
開発/本番環境はDocker
開発一日目感想
一度フロントで完結するやつを作ろうとしたが、結果的にこれは以下の理由で大失敗だった。
pakoというライブラリ(zlibのJS実装?)を利用したが、当然zipには非対応。
gzファイルには当然対応しているが、ファイル名とかのパースはしてくれない。全部文字列で返却してくる。そのためパーサを書かないといけない。
上記に気がつくまで二時間ほどコード回してた。
諦めてバックエンドに飛ばそう…。