You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

跨服务器Confluence内容迁移API实现咨询(导出功能故障)

Confluence跨实例内容迁移(API方案)

一、提取目标实例的内容

  1. 通过REST API批量获取页面数据
    • 核心API接口:GET /rest/api/content
    • 关键参数:
      • spaceKey:指定要提取的空间Key,缩小目标内容范围
      • expand=body.storage,version,ancestors:展开页面的存储格式内容、版本信息、父页面层级,确保拿到完整迁移所需数据
      • limit=100:一次请求最多返回100条数据(API默认限制),配合start参数实现分页,比如start=100获取下一页,直到返回的results数组为空
    • 示例curl请求:
      curl -u 用户名:密码 "https://原Confluence域名/rest/api/content?spaceKey=DEV&expand=body.storage,version,ancestors&limit=100"
      
  2. 本地保存数据
    • 将返回的每个页面的核心字段(title、body.storage.value、spaceKey、ancestors、version.number)整理为JSON格式文件,按空间或页面层级分类存储,方便后续导入操作。

二、将内容导入目标服务器

  1. 提前准备目标空间
    • 如果目标实例没有对应空间,先通过API创建:
      curl -u 目标实例用户名:密码 -X POST -H "Content-Type: application/json" -d '{"key":"DEV","name":"开发文档空间"}' "https://目标Confluence域名/rest/api/space"
      
  2. 按层级导入页面
    • 按页面的父级层级顺序导入(先导入父页面,再导入子页面),避免父页面不存在导致的层级错误
    • 核心API接口:POST /rest/api/content
    • 示例创建页面的curl请求:
      curl -u 目标实例用户名:密码 -X POST -H "Content-Type: application/json" -d '{
        "type": "page",
        "title": "原页面标题",
        "space": {"key": "DEV"},
        "body": {
          "storage": {
            "value": "原页面的storage格式内容",
            "representation": "storage"
          }
        },
        "ancestors": [{"id": "父页面在目标实例的ID"}]
      }' "https://目标Confluence域名/rest/api/content"
      
    • 若需保留版本历史,可在页面创建后,通过PUT /rest/api/content/{页面ID}/version接口更新版本信息。

三、解决WebDev操作生成空白页的问题

  • 原因:WebDev工具抓取的是前端渲染后的HTML,而非Confluence官方的storage格式内容,部分宏、样式在目标实例无法解析;或是页面内容为动态加载,静态抓取未获取完整内容。
  • 解决方式:
    • 优先改用API获取官方storage格式内容(这是Confluence编辑器原生支持的格式,兼容性最好)
    • 若坚持用前端方式,需等待页面所有内容(包括异步加载的宏、附件预览)完全渲染后,复制编辑器内的原始内容(而非页面HTML源码),再粘贴到目标实例编辑器中。

内容的提问来源于stack exchange,提问作者tuaniz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 16:57:41