本文最后更新于天前,内容可能已不再适用!

Artitalk v3 的数据存储、账号登录和内容操作都依赖 LeanCloud。但 LeanCloud 即将停止服务,这意味着仍在使用 Artitalk v3 的站点将无法继续正常读取和写入数据。

与此同时,原项目ArtitalkJS/Artitalk已经不再更新,无法等待上游提供新的后端方案。

因此,我在原项目的基础上继续维护 Artitalk,并完成了这次 v4 更新。

Artitalk 仍然是那个可以嵌入博客的轻量级“说说”组件。发布动态、Markdown/HTML 渲染、图片和视频内容、评论、登录与删除等主要功能都得到了保留。不过,从 v4 开始,Artitalk 不再需要 LeanCloud 的appIdappKey,而是通过一个由用户自行部署的 Vercel 服务端运行。

v4 的新架构

Artitalk v4 采用以下结构:

博客页面中的 Artitalk
        ↓
Vercel Serverless API
        ↓
Neon Postgres

前端不再直接操作数据库,而是将登录、查询、发布、编辑、删除和评论请求发送到 Vercel 服务端。服务端负责访问 Neon Postgres,并将结果转换成前端能够识别的数据格式。

这套方案有几个直接的变化:

  • Vercel 负责运行 Artitalk 的服务端 API;
  • Neon Postgres 负责保存说说、评论和管理员数据;
  • 管理员用户名、密码和数据库连接信息通过 Vercel 环境变量配置;
  • 可以使用ALLOW_ORIGIN限制允许访问接口的博客域名;
  • 前端只需要配置公开的serverURL

新的前端配置如下:

<script src="https://unpkg.com/@hclonely/artitalk"></script>
<div id="artitalk_main"></div>

<script>
new Artitalk({
  backend: 'vercel',
  serverURL: 'https://your-vercel-app.vercel.app'
})
</script>

其中,serverURL是部署后的 Vercel 项目地址,不是 Neon 数据库连接字符串。

历史数据可以继续保留

架构迁移最重要的问题不是部署新服务,而是如何带走旧数据。

Artitalk v4 提供了专门的 LeanCloud 数据迁移入口。用户可以从 LeanCloud 控制台导出旧应用数据,然后上传以下两个文件:

  • shuoshuo.0.jsonl:已经发布的说说;
  • atComment.0.jsonl:说说下的评论。

迁移程序会将数据写入 Neon,并尽量保留原有的objectIdcreatedAtupdatedAt和其他业务字段。这样不仅可以保留历史发布时间,也可以继续维持评论与说说之间的关联。

LeanCloud_User中的账号和密码不会迁移。v4 会根据 Vercel 环境变量重新创建管理员账户,这样可以避免继续依赖旧平台的用户系统。

升级需要做什么

从 v3 升级到 v4,主要需要完成以下步骤:

  1. 从 LeanCloud 导出shuoshuoatComment数据;
  2. 将 Artitalk 服务端部署到 Vercel;
  3. 为 Vercel 项目连接 Neon Postgres;
  4. 配置管理员账号、数据库和允许访问的站点域名;
  5. 在服务端初始化页面导入 LeanCloud JSONL 文件;
  6. 初始化新的管理员账户;
  7. 将博客中的旧版appIdappKey配置替换为serverURL
  8. 核对说说数量、评论数量、发布时间和登录发布功能。

迁移完成并验证无误前,请不要删除 LeanCloud 应用,也不要删除原始导出文件。保留旧环境可以在新服务出现配置问题时快速回滚。

不变的使用体验,更可控的后端

Artitalk v4 尽量保持了原有组件的使用体验,但其运行基础已经发生变化。

以前,Artitalk 是一个直接依赖 LeanCloud 的前端组件;现在,它由前端组件、Vercel 服务端和 Neon 数据库共同组成。用户需要多完成一次部署,却也因此获得了更清晰的配置边界和更独立的数据存储方案。

这次迁移首先解决的是 LeanCloud 即将停止服务带来的生存问题,也让这个已经停止更新的项目能够继续使用和维护。未来即使需要更换数据库或部署平台,前端也不必再次跟随底层服务进行大规模重写。

如果你仍在使用 Artitalk v3,建议先备份 LeanCloud 数据,再按照迁移文档完成升级:

最后修改:2026-06-18 03:46:47
如果觉得我的文章对你有用,请随意赞赏