コンテンツにスキップ
公式サイト →

アプリディスクのファイル操作

Keelson のアプリには永続化される /data ディスクがあります。アプリを再デプロイせずに、AI エージェントが 1 ファイルだけ差し替えたい場合は keelson files を使います。

Streamlit など、ローカルの CSV/TSV を直接読むデータアプリで便利です。

import pandas as pd
df = pd.read_csv("/data/data/sales.tsv", sep="\t")

ファイルをアップロード:

Terminal window
keelson files put sales.tsv --app sales-dashboard --dest data/sales.tsv --if-not-exists --ndjson

意図して上書き:

Terminal window
keelson files put sales.tsv --app sales-dashboard --dest data/sales.tsv --replace --ndjson

ファイルをダウンロード:

Terminal window
keelson files get data/sales.tsv --app sales-dashboard -o ./sales.tsv --json

ローカルの出力先を意図して上書き:

Terminal window
keelson files get data/sales.tsv --app sales-dashboard -o ./sales.tsv --force --json

ディレクトリを一覧:

Terminal window
keelson files ls --app sales-dashboard --path data --json

1 ファイルを削除:

Terminal window
keelson files rm data/sales.tsv --app sales-dashboard --yes --json

非対話のエージェントは、put では --ndjson を優先してください。helper Job がアプリディスクへの書き込みを 完了するまで待ちます。--json は operation を開始してすぐ返ります。

競合モードは明示します。

  • 新規作成なら --if-not-exists
  • 事前に確認したファイルだけを置き換えるなら --if-remote-sha256 <hex>
  • ユーザーが明確に上書きを依頼した場合だけ --replace
  • ユーザーが明確にローカル出力先の上書きを依頼した場合だけ --force
  • ユーザーが明確に remote file の削除を依頼した場合だけ --yes

複数ワークスペースにアクセスできる token の場合は --tenant <tenant-id> を付けます。

remote path は /data からの相対パスです。たとえば data/sales.tsv はアプリコンテナ内の /data/data/sales.tsv に対応します。

Keelson は absolute path、..、symlink component、device file、socket、FIFO、directory overwrite、 危険な database/WAL/journal 破壊操作を拒否します。rm は regular file だけを削除します。

初期リリースのサイズ上限は、単一ファイルのデータ更新向けです。大量データ、SQLite DB の丸ごと差し替え、 ディレクトリ単位の移動には snapshot / backup 経路を使ってください。