edgeone-makers-storage について
EdgeOne Makers の KV と Blob ストレージの選択・利用方法をまとめたスキルガイドです。ランタイムごとの制約やデータ永続化の設計、設定要件を説明します。
主な機能
- 01小規模なキー・バリューデータ向け KV
- 02ファイルや構造化レコード向け Blob
- 03ランタイムに応じたストレージ選択
- 04Blob キーを使った永続化パターン
活用シーン
- 01ゲストブックの投稿や投票の保存
- 02アップロードファイルや生成コンテンツの保管
- 03カウンター、設定、セッショントークンの保存
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tencentedgeone/ edgeone-makers-tools --skill edgeone-makers-storageインストール後、Claude Code で/edgeone-makers-storageを入力して読み込まれたか確認します。
同梱ファイルreferences/blob.mdreferences/kv.md
詳細
EdgeOne Makers ストレージ
🗄️ このプラットフォームにはマネージドデータベースはありません — SQL、MongoDB、Prisma、ORM はありません。
sqlite、pg、mysql、mongodb、またはインメモリ配列には手を出さないでください(コールドスタートや再デプロイのたびにリセットされます)。Blob がデータベースです。 生成されたサイトが永続化する必要のある動的データ — ゲストブックのメッセージ、アップロードされた描画、投票、ランキング、ユーザーごとの保存状態、フォーム送信データ — は、Blob キーとしてモデル化します。「テーブル」はキーのプレフィックス(messages/<id>.json、users/<uid>.json)としてモデル化します。references/blob.md →「Blob as your backend」を参照してください。
⚠️ ローカル開発でログインが常に必要とは限りません。
edgeone makers devは、完全な静的サイトのプレビューであれば認証なしで実行できます。ログインが必要になるのは、次の流れをたどる場合だけです。Blob を使用する ⇒ プロジェクトをlinkする必要がある ⇒ リンクにはログイン済みアカウントが必要。 そのため、開発/デプロイで Blob(または認証情報が必要なバックエンド)を読み書きする場合に限り、リンクまたは開発サーバーの起動前にedgeone login(ブラウザーを使用)を実行するか、-t <token>を渡してください。サイトにバックエンドがない場合は、ログインせずにedgeone makers devを実行してください。 makers-env-adaption(ログイン認証 + プロジェクトのリンク)も参照してください。⛔ プロジェクトで Blob/KV を使用する場合は、必ず
edgeone makers devに-n <project-name>を渡してください。edgeone makers devをそのまま実行すると、「既存のものをリンク/作成してリンク」という対話式の選択画面が表示され、サンドボックス/非対話環境では処理が停止します。-nを指定すると、名前のプロジェクトがまだ存在しない場合は CLI が自動作成するため、別途手順を実行せずに 1 つのコマンドで完了します。🔒 すべての Blob ストアでは
getStore({ name, consistency: "strong" })を使用してください。文字列形式のgetStore("name")は使用しないでください。 文字列形式では結果整合性がデフォルトになり、「書き込んだ直後なのに、次の読み取りで古い値/null が返る」という不具合が発生します。詳しいルールと理由については、references/blob.md → ファイル先頭の「IRON RULE」を参照してください。
EdgeOne Makers には 2 種類のストレージサービスがあります。実行環境とデータの種類に応じて選択してください。
| ストレージ | 実行環境 | データの種類 | SDK | 用途 |
|---|---|---|---|---|
| KV | Edge Functions のみ | 小さなキーと値のペア(≤ 25 MB) | グローバル変数(npm 不要) | カウンター、設定、セッショントークン、シンプルな CRUD |
| Blob | Cloud Functions(Makers Functions) | ファイルとオブジェクト(画像、ドキュメント、アップロード) | @edgeone/pages-blob(npm) | ユーザーによるアップロード、AI 生成コンテンツ、ファイル管理 |
判断ツリー
Need to persist anything (records, lists, counters, uploads, save state)?
├─ Edge Function (V8 runtime, no npm)?
│ → KV Storage (global variable) → read references/kv.md
└─ Cloud Function (Node.js, has npm)? ← default for any real backend
├─ Files / images / large objects?
│ → Blob Storage → read references/blob.md
└─ Structured data (records, lists, counters, per-user state)?
→ Blob with setJSON / key prefixes → read references/blob.md
参照先
| タスク | 参照先 |
|---|---|
| KV ストレージ(Edge Functions、グローバル変数、put/get/delete/list) | references/kv.md |
| Blob ストレージ(Cloud Functions、npm SDK、ファイルのアップロード/ダウンロード、事前署名付き URL) | references/blob.md |