ファイル
サービスの Files タイルを開くと、動いているコンテナ内のファイルを閲覧できます。フォルダーを開く、テキストファイルを読む、ファイルをダウンロード・アップロードする、フォルダーを作る、名前を変える、削除する、といった操作ができます。
ファイルブラウザーは、Command と Terminal のタイルと同じ経路で、サービスの最新の動いているインスタンスに対して動作します。サービスがデプロイされて動いていれば使えます。
できること
| 操作 | 方法 |
|---|---|
| 閲覧 | フォルダーをクリックするか、一覧の上のパスを使うか、パスを入力して Go を押します。一覧には各項目のサイズ、パーミッション(ls -l と同様)、更新日時が表示され、パーミッションにカーソルを合わせると所有者がわかります。 |
| 読む | ファイルをクリックすると表示されます。テキストファイルは先頭 256 KB まで表示され、バイナリファイルはダウンロードのみです。 |
| ダウンロード | ファイルの横のダウンロードボタン、またはビューアーの Download。500 MB までのファイル。 |
| アップロード | Upload、または一覧にファイルをドロップ。今見ているフォルダーに入ります。50 MB までのファイルを 1 つずつ。同じ名前のファイルがあれば、置き換える前に確認されます。 |
| 新しいフォルダー、名前の変更 | New folder と、各項目の横の鉛筆ボタン。名前を変えても同じフォルダーに残ります。 |
| 削除 | ごみ箱ボタンから Delete で確定。フォルダーは中身ごと削除され、リンクは指す先に触れずに削除されます。削除は元に戻せません。 |
ボリュームと失われる変更
ボリューム以外にあるコンテナのファイルはイメージから来ていて、再デプロイや再起動のたびに初期状態に戻ります。ファイルブラウザーは一覧の上でそのことを伝え、サービスのボリュームを示します。ボリュームの中では変更が保持されることを伝えます。ボリュームのフォルダーには一覧で Volume の印が付きます。
ファイルブラウザーは、サービスの調査、ファイルの取り出し、ボリュームへのデータの投入に使ってください。ボリューム以外で変更を保ちたいファイルは、イメージを変えるか、サービスの Settings タブで設定ファイルを追加してください。設定ファイルは読み取り専用でマウントされるので、ここでは変更できません。
必要なもの
コンテナにシェル(sh)と一般的なファイル操作ツール(cat、stat、mv、rm、mkdir、wc)が必要です。Alpine、BusyBox、Debian、Ubuntu ベースのイメージにはすべてあります。distroless や scratch のような最小のイメージにはアプリケーションしか入っていないため、ファイルブラウザーはイメージにシェルがないと表示します。ファイル操作はコンテナのユーザーで実行されるので、root で動かないコンテナでは読めない・変えられないファイルがあることがあります。
使える人
メンバー、管理者、オーナー。Viewer はファイルブラウザーをまったく開けず、ファイルの一覧も見られません。ファイルには鍵や .env ファイルのようなシークレットが含まれうるためです。
アップロード、ダウンロード、新しいフォルダー、名前の変更、削除は、サービスとパスとともにチームの監査ログに記録されます。ファイルの内容が記録されることはありません。
仕組み
各操作は、コントロールプレーンから kubectl exec のようにアクセスし、コンテナ内で決まったスクリプトを 1 つ実行します。パスは正規化され(.. で / より上には行けません)、シェルのコマンドに埋め込まれることなく別々の引数としてスクリプトに渡されるので、空白、引用符、$(…) を含む名前もただの名前として扱われます。アップロードは対象の横の一時ファイルにストリームされ、全バイトが届いてから所定の場所に移動されます。中断されたアップロードは何も残しません。ダウンロードは、ブラウザーが Web ページとして開くことのない添付ファイルとして送られます。