guideCKBox 迁移工具

本指南将向您展示如何将资产从旧系统(如 CKFinder 或 Easy Image)迁移到 CKBox。您还将找到有关如何在迁移后将系统中的旧 URL 替换为 CKBox 链接的信息。

# 使用迁移工具

迁移工具是一个 CLI 应用程序,旨在将您的资产在系统之间迁移。它内置支持 Easy Image 和 CKFinder,您还可以创建自定义适配器以从任何源迁移文件。

# 安装

在安装迁移工具之前,请确保您已安装 NodeJS 版本 18.x 或更高版本。有关安装 NodeJS 的说明,请访问 [https://node.org.cn/en/download/package-manager 此页面]。

然后,您可以从源代码下载并构建迁移工具

git clone git@github.com:ckbox-io/migration-tool.git
cd migration-tool
npm install
npm run build

# 准备迁移

为了迁移您的资产,您需要配置与您的源存储和 CKBox 的连接。首先,准备 CKBox 连接的配置。

# 配置 CKBox 连接

在您下载迁移工具的目录中创建一个 config.json 文件。您可以复制并使用 config.template.json 作为您自己配置的模板。

您需要提供访问凭据(即环境 ID 和访问密钥)。您可以在 身份验证 指南中了解有关 CKBox 凭据的更多信息。您还应提供 serviceOrigin URL。如果您是 SaaS 客户端,它应该指向 https://api.ckbox.io。对于本地部署版本,您需要将此值设置为指向 CKBox 本地应用程序的 REST API 的 URL。

{
    "ckbox": {
        "accessCredentials": {
            "environmentId": "<ENVIRONMENT_ID>",
            "accessKey": "<ACCESS_KEY>"
        },
        "workspaceId": "<WORKSPACE_ID>",
        "serviceOrigin": "<SERVICE_ORIGIN>"
    }
}

可选地,您也可以指定 workspaceId。如果您没有指定,所有文件都将上传到默认工作区。在 工作区 指南中详细了解工作区。

CKBox 连接配置选项列表

选项名称 描述
ckbox.assetsCredentials.environmentId 迁移的目标环境。
ckbox.assetsCredentials.accessKey 用于签署授权令牌的访问密钥。
ckbox.workspaceId 迁移的目标工作区(可选)。
ckbox.serviceOrigin 设置用于 CKBox REST API 的来源。

# 准备源存储

源存储配置取决于您要迁移的系统类型。如果您要从 CKFinder 或 Easy Image 迁移,您可以使用内置支持并使用以下示例。对于其他系统,您需要实现自己的 SourceStorageAdapter。有关从自定义存储迁移的更多信息,请参阅 本文档

# CKFinder

要从 CKFinder 迁移资产,您必须为 ckfinder 设置 type,设置连接器 URL,并添加用于身份验证的标头。

{
    "source": {
        "type": "ckfinder",
        "options": {
            "connectorPath": "https://127.0.0.1:8080/ckfinder/connector",
            "authentication": {
                "headers": {
                    "Cookie": "PHPSESSID=e0baf7e705e40f7e7dea7fa3d04a5a79"
                }
            }
        }
    },
    "ckbox": {
        ...
    }
}

CKFinder 连接配置选项列表

选项名称 描述
source.type 必须设置为 ckfinder
source.options.connectorPath 设置用于 CKFinder REST API 的来源。
source.options.authentication.headers 设置身份验证所需的标头。

# Easy Image

要从 Easy Image 迁移资产,您必须将 type 设置为 easy-image,设置 REST API 来源 URL,并添加访问凭据。

您可以在 CKEditor 云服务授权 指南中找到有关 Easy Image 凭据的更多信息。

{
    "source": {
        "type": "easy-image",
        "options": {
            "accessCredentials": {
                "environmentId": "<ENVIRONMENT_ID>",
                "accessKey": "<ACCESS_KEY>"
            },
            "serviceOrigin": "<SERVICE_ORIGIN>"
        }
    },
    "ckbox": {
        ...
    }
}

Easy Image 连接配置选项列表

选项名称 描述
source.type 必须设置为 easy-image
source.options.assetsCredentials.environmentId 迁移的源环境。
source.options.assetsCredentials.accessKey 用于签署授权令牌的访问密钥。
source.options.serviceOrigin 设置用于 Easy Image REST API 的来源。

# 检查配置

在迁移之前,建议先通过在试运行模式下运行迁移工具来验证配置。此命令将验证连接并扫描源存储以查看它是否可以访问资源。

npm start -- --dry-run

# 运行迁移

要启动迁移,您需要执行以下命令

npm start

此命令将在您的 CKBox 实例中创建类别、文件夹并上传资产。

# 将旧 URL 替换为应用程序中的新 URL

迁移过程完成后,迁移工具会生成一个文件,其中映射了旧 URL 与新 URL。文件名将具有格式 ckbox_mapped_URLs_[migration time].txt。您可以使用此文件将应用程序中的旧 URL 替换为新 URL。

该文件包含 URL 对,每对 URL 占一行。源文件的 URL 和已迁移文件的 URL 由制表符分隔。

# 故障排除

如果出现任何问题,迁移工具将在 ckbox_migrator_[migration time].log 文件中生成日志。它包含有关所发生问题的详细说明。

您还应该注意,即使其中一项资源迁移失败,迁移工具也会尝试迁移剩余的资源。您将在控制台中收到有关此问题的消息,因此您可以检查日志以获取更多信息。如果您发现某些资源迁移失败,但其他资源没有失败,则必须首先检查并修复问题(例如调整源系统或 CKBox 的权限)。然后,您可以

  • 尝试手动上传失败的资产。
  • 或者,您可以通过从 CKBox 中删除资源并再次尝试迁移来恢复迁移。