feat: use xpier media library for uploads and markdown embeds
Store media:ID in post bodies instead of CDN URLs, and keep sablog attach tokens as a fallback. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+32
-31
@@ -24,39 +24,40 @@ php artisan sablog:import \
|
||||
|
||||
### 参数说明
|
||||
|
||||
| 参数 | 默认 | 说明 |
|
||||
|------|------|------|
|
||||
| `--driver` | mysql | 老库驱动(测试可用 `sqlite`) |
|
||||
| `--host` / `--port` | 127.0.0.1 / 3306 | 老库地址 |
|
||||
| `--database` | (必填) | 老库名 |
|
||||
| `--username` / `--password` | root / 空 | 老库账号 |
|
||||
| `--prefix` | `sablog_` | 老表前缀(老站可能自定义过) |
|
||||
| `--attachments-dir` | — | 老附件目录,配合 `--sync-attachments` 用 |
|
||||
| `--sync-attachments` | 关 | 同步附件文件到新存储(本地中转或直接上 S3) |
|
||||
| `--convert-markdown` | 关 | 导入时把 HTML 正文转为 Markdown |
|
||||
| `--fresh` | 关 | 清空目标表后重新导入 |
|
||||
| 参数 | 默认 | 说明 |
|
||||
| --------------------------- | ---------------- | ------------------------------------------- |
|
||||
| `--driver` | mysql | 老库驱动(测试可用 `sqlite`) |
|
||||
| `--host` / `--port` | 127.0.0.1 / 3306 | 老库地址 |
|
||||
| `--database` | (必填) | 老库名 |
|
||||
| `--username` / `--password` | root / 空 | 老库账号 |
|
||||
| `--prefix` | `sablog_` | 老表前缀(老站可能自定义过) |
|
||||
| `--attachments-dir` | — | 老附件目录,配合 `--sync-attachments` 用 |
|
||||
| `--sync-attachments` | 关 | 同步附件文件到新存储(本地中转或直接上 S3) |
|
||||
| `--convert-markdown` | 关 | 导入时把 HTML 正文转为 Markdown |
|
||||
| `--fresh` | 关 | 清空目标表后重新导入 |
|
||||
|
||||
## 数据映射
|
||||
|
||||
| 老表 | 新表 | 说明 |
|
||||
|------|------|------|
|
||||
| `users` | `users` | **ID 保留**;老 MD5 密码进 `legacy_md5`,登录时自动升级为 bcrypt |
|
||||
| `articles` | `posts` | **articleid 保留为 id**;`[attach=xx]` 按内容格式处理(见下) |
|
||||
| `categories` | `categories` | cid 保留;导入后自动重算文章数 |
|
||||
| `comments` | `comments` | commentid 保留;visible 语义映射为状态 |
|
||||
| `links` | `links` | linkid 保留 |
|
||||
| `attachments` | medialibrary `media` | 文件 + `legacy_attachmentid` 映射(老 `[attach=xx]` 按此解析) |
|
||||
| `settings` | `settings` | 键值映射为站点设置(可在后台「博客设置」继续改) |
|
||||
| `tags` | spatie tags | 老 aids 文本解析为独立标签 + 关联 |
|
||||
| 老表 | 新表 | 说明 |
|
||||
| ------------- | -------------------- | ---------------------------------------------------------------- |
|
||||
| `users` | `users` | **ID 保留**;老 MD5 密码进 `legacy_md5`,登录时自动升级为 bcrypt |
|
||||
| `articles` | `posts` | **articleid 保留为 id**;`[attach=xx]` 按内容格式处理(见下) |
|
||||
| `categories` | `categories` | cid 保留;导入后自动重算文章数 |
|
||||
| `comments` | `comments` | commentid 保留;visible 语义映射为状态 |
|
||||
| `links` | `links` | linkid 保留 |
|
||||
| `attachments` | medialibrary `media` | 文件 + `legacy_attachmentid` 映射(老 `[attach=xx]` 按此解析) |
|
||||
| `settings` | `settings` | 键值映射为站点设置(可在后台「博客设置」继续改) |
|
||||
| `tags` | spatie tags | 老 aids 文本解析为独立标签 + 关联 |
|
||||
|
||||
**不迁移**:trackback/引用通告(垃圾来源,接口已关闭)、搜索缓存表、验证码(由 AI 审核 + 蜜罐 + 频控取代)。
|
||||
|
||||
## 附件短代码的处理
|
||||
|
||||
| 老内容 | 导入后 |
|
||||
|--------|--------|
|
||||
| HTML 正文 `[attach=12]` | 原样保留,**渲染时按 legacy id 解析**为附件链接/图片 |
|
||||
| Markdown 正文(--convert-markdown) | 自动转成 `{{attach:12}}` 令牌(`[]` 是 Markdown 保留字符) |
|
||||
| 老内容 | 导入后 |
|
||||
| ----------------------------------- | --------------------------------------------------------------------------------------------- |
|
||||
| HTML 正文 `[attach=12]` | 原样保留,**渲染时按 legacy id 解析**为附件链接/图片 |
|
||||
| Markdown 正文(--convert-markdown) | 自动转成 `{{attach:12}}` 令牌(`[]` 是 Markdown 保留字符) |
|
||||
| 新写作(媒体库) | 写入 `` / `[name](media:ID)`,渲染时换成媒体库 URL(见 [media.md](media.md)) |
|
||||
|
||||
两种格式都能正常显示老附件,无需手工替换。
|
||||
|
||||
@@ -105,9 +106,9 @@ php artisan content:convert --all --dry-run # 先预览
|
||||
|
||||
## 常见问题
|
||||
|
||||
| 现象 | 处理 |
|
||||
|------|------|
|
||||
| 报「找不到老表」 | 检查 `--prefix`(老站表前缀可能不是 `sablog_`)与老库名 |
|
||||
| 附件显示不出来 | 确认 `--attachments-dir` 路径正确;看 `attachments:sync-s3` 输出报告 |
|
||||
| 老密码登录失败 | 老库密码若是自定义加密(非 MD5),需要按 `User::verifyPassword` 扩展 |
|
||||
| 中文乱码 | 老库导出时用 utf8mb4;`--driver=sqlite` 只用于测试 |
|
||||
| 现象 | 处理 |
|
||||
| ---------------- | -------------------------------------------------------------------- |
|
||||
| 报「找不到老表」 | 检查 `--prefix`(老站表前缀可能不是 `sablog_`)与老库名 |
|
||||
| 附件显示不出来 | 确认 `--attachments-dir` 路径正确;看 `attachments:sync-s3` 输出报告 |
|
||||
| 老密码登录失败 | 老库密码若是自定义加密(非 MD5),需要按 `User::verifyPassword` 扩展 |
|
||||
| 中文乱码 | 老库导出时用 utf8mb4;`--driver=sqlite` 只用于测试 |
|
||||
|
||||
Reference in New Issue
Block a user