ブラウザで圧縮ファイルの中身を確認したい

タイトルの通りなのでまずはローカルサービスとして書いていくぞ。

根本的には公開されているZipファイルを確認したかっただけなのでそこだけサポートするとすると

入力要件は下記となる。

  • フロント: zipファイルのURLを入力する
  • API: zipファイルのURLをパラメタとする
  • 共通: ファイル種類はzipのみとする

描画自体は後でもよいのでAPIで再帰リストとして返却してくれればよい。

  • API: ディレクトリ情報は再帰リストで返却
  • フロント: ディレクトリツリーライブラリへレスポンスを入れる

とりあえずここまで書いてみる。

それ以降については上記ができてから考える。テトリスとか終わってないからね。

名前

compiew

実装機能

ブラウジング(キャッシング->ブラウジングという流れ)

  • キャッシング
  • 外部サイトリンク経由でのダウンロード
  • 本サービス内部でダウンロード

部分操作

  • 部分的にダウンロードする。
  • 改めてZip化等を行い、DL。

インフラ

  • backend: go
  • frontend: typescript+react

開発/本番環境はDocker

開発一日目感想

一度フロントで完結するやつを作ろうとしたが、結果的にこれは以下の理由で大失敗だった。

  • pakoというライブラリ(zlibのJS実装?)を利用したが、当然zipには非対応。

  • gzファイルには当然対応しているが、ファイル名とかのパースはしてくれない。全部文字列で返却してくる。そのためパーサを書かないといけない。

上記に気がつくまで二時間ほどコード回してた。

諦めてバックエンドに飛ばそう…。