批量导入文章:Excel、压缩包和接口三种方式怎么选

批量导入文章的三条路线不是同一个功能的大小号,而是三种不同的责任划分:Excel 把字段口径压在你手里,ZIP 把媒体与命名规则压在你手里,导入接口把查重、分批和错误重试压在你手里。AnQiCMS 支持 ZIP 压缩包与 Excel 表格两种批量导入方式,同时提供文档内容导入接口 /api/import/archive,支持按标题查询稿件是否已存在。先看清自己的内容长什么样,再决定走哪条。

三种方式各自擅长什么

路线 最适合的内容形态 必须提前准备的东西 主要风险
Excel 表格 纯文字稿件、字段规整的存量文章 与系统一致的列名和分类标识 富文本被压平、长段落换行丢失
ZIP 压缩包 带图片、带附件的文章集合 稳定的目录结构与文件命名 图片路径失联、同名文件互相覆盖
导入接口 程序化迁移、需要查重与分批重试 调用凭证与字段映射表 分批中断导致半迁移,重复提交

一句话选择法:内容没有媒体文件就走表格;媒体文件多且目录关系复杂就走压缩包;需要边迁移边核对、或者迁移量要靠脚本控制,就走接口。

先定字段口径,再选导入方式

字段口径没定就动手,是导入返工的主要来源。要先落三件事:栏目归属(每篇稿子落到哪个分类)、标签规则(导入时是否自动生成标签)、正文形态(保留富文本还是纯文本)。

AnQiCMS 的自定义内容模型决定了导入表能承接哪些字段。内容模型与自定义字段的定义如果和目标表结构对不上,表格里多出来的列不会自动变成新字段,只会在这一次被静默丢弃。因此表格路线在正式导入前,应该先拿少量样例行做一次试跑,确认每一列都落到了对应位置。

Excel 路线的操作顺序

先导出系统的标准模板,按模板列顺序整理数据,不要自造列名。整理时处理三处:长文本里的换行统一、日期列的格式统一、空值列留空而不是填占位符。填完后分批保存,每批控制在一个可核对的量级,导完一批立刻抽查两到三篇,确认标题、正文、分类三项都对,再放下一批。

ZIP 路线要注意媒体与命名

压缩包路线的核心是相对关系。图片在包内的相对位置一旦改变,导入后正文引用的就是失联路径。命名上要避免同一目录里出现同名文件,跨栏目的素材不要混在同一个目录,否则合并时会出现覆盖。压缩包内如果有文章清单文件,清单里的标题字段必须和正文标题一致,不然导入结果会退化成一篇篇没有归属的散稿。

接口路线:按标题查重与分批提交

接口路线的价值在可控。迁移前先调用 /api/import/archive 的按标题查询能力,判断稿件在库里是否已存在,存在则更新、不存在则新建,这条规则一旦定下来,重试就不会制造重复内容。字段与返回结构以站内接口文档为准,高频 API 调用能力覆盖文档列表与详情、分类与标签、上传图片,因此实际迁移程序通常是:拉分类表建立映射,逐篇读原文,先传图再提交正文。

分批提交要有断点记录:每批记下已处理的标题,中断后从断点继续,而不是从头重跑。全部提交完成后,再用列表接口按分类拉一次数量,和源站数量对比。

导入后必查的四处

  1. 数量核对:目标分类下的文档数是否与源内容条数一致;
  2. 媒体核对:抽查图片是否能正常显示,路径是否指向站内存储;
  3. 状态核对:批量导入的结果先进草稿还是直接正式生效,需要按发布计划确认;
  4. 收录核对:新地址是否已进入站点地图,旧地址是否需要配跳转。

常见问题

三种方式能混用吗? 可以,常见组合是正文用表格批量进来,媒体靠接口逐篇补传。

导入错了一轮怎么办? 先停批次,清理这一轮产生的稿件再重跑。回收站能承接删除,但要确认这批内容没有进入推送队列。

接口导入需要额外开通什么? 需要调用凭证,且接口能力面按暴露范围设置;这一步与人工后台是两条通道,权限范围不要混为一谈。

导入会影响原站的收录吗? 不会,风险在目标站:同一篇内容在两个站点同时对外生效时,需要先决定保留哪一份。