Update DOX docs for R2 image upload

This commit is contained in:
2026-09-12 10:10:21 +08:00
parent df330ffd70
commit 00502e5e52
3 changed files with 9 additions and 5 deletions
+3 -2
View File
@@ -23,6 +23,7 @@ Astro 7 + React 19 + Chakra UI v3,部署在 Cloudflare Workers(單一 Worker
- **AI Blog**`src/lib/ai.ts`OpenAI 相容 chat completions + Tavily)+ `/admin/ai`**預設供應商 DeepSeek 官方(`https://api.deepseek.com``deepseek-flash`)**,提示詞通用唔綁行業(角色/公司資料由後台 `ai_context_prompt``ai_business_context` 提供)。同步生成、一律存草稿並標記關鍵字 `generated`。需要 secrets `AI_API_KEY`(必需)/`TAVILY_API_KEY`(可選);未設時回明確錯誤,唔會 throw。已部署 DB 轉供應商要喺 `/admin/ai` 改,唔好重跑 `db:seed`(會覆蓋後台設定)。
- **部署用 Cloudflare Workers Builds**Git push 自動):build `npm run build`、deploy `npx wrangler deploy`。**Migration 唔會喺 CI 執行**,改 schema 要手動 `npm run db:migrate`(雲端)。
- **`wrangler.jsonc` 有佔位 id**`database_id` / KV `id` 要先用 `db:create` / `kv:create` 產生再貼上,未貼前無法部署。R2 bucket 唔使貼 id,用 `r2:create`(或 `npm run setup`)建立即可,binding 係 `MEDIA`
- **圖片上傳**:圖片存 Cloudflare R2binding `MEDIA`、bucket `yingfung-solar-media`),由同一個 Worker 的 `/media/*` 出圖;上傳經 `/admin/upload`client 端先縮圖轉 WebP。本機靠 `platformProxy` 模擬 R2,雲端要先 `npm run r2:create`。圖片欄位仍可貼 URL;換圖/刪除時 `lib/media.ts` 會清舊 R2 檔。
- **上線前要改 `astro.config.mjs``site`**sitemap / canonical / OG 全部靠它(現為 `https://example.com`)。
- **後台認證**`src/middleware.ts` 保護所有 `/admin`,用 HMAC-signed cookie`src/lib/auth.ts`);未設 `ADMIN_PASSWORD`(本機在 `.dev.vars`,已 gitignore)會回 503。
- **Chakra v3 + Emotion**:前台 React 元件要用 `Provider` / `SiteChrome`(內含 `<ChakraProvider value={system}>`),theme 在 `src/theme/system.ts`。Astro 以 `client:load` 掛 island。
@@ -115,11 +116,11 @@ When the user requests a durable behavior change, record it here or in the relev
| Path | Scope |
|---|---|
| `src/AGENTS.md` | 原始碼全層:架構、跨層慣例;擁有 `theme/``layouts/``schemas/``config.ts``middleware.ts``env.d.ts`,以及 `pages/` 路由與 `/admin` 後台合約 |
| `src/AGENTS.md` | 原始碼全層:架構、跨層慣例;擁有 `theme/``layouts/``schemas/``config.ts``middleware.ts``env.d.ts``components/admin/`,以及 `pages/` 路由與 `/admin` 後台合約 |
| `src/components/site/AGENTS.md` | 前台 React island 與 Chakra UI 元件 |
| `src/data/AGENTS.md` | D1 讀取查詢層與後台設定欄位定義 |
| `src/db/AGENTS.md` | Drizzle schemamigration 的唯一來源) |
| `src/lib/AGENTS.md` | auth / env / db / form / ai / markdown 基礎工具 |
| `src/lib/AGENTS.md` | auth / env / db / form / media / ai / markdown 基礎工具 |
| `migrations/AGENTS.md` | D1 migration 與 seed SQL |
| `docs/AGENTS.md` | 設計規格與實作計劃(`superpowers/` 為設計權威) |