数据管理(Data Management)

页面摘要: 数据管理通过基于 CLI 的导入、导出和传输,在不同 Strapi 实例之间移动内容,并在管理面板中进行部分配置。本文档中讲解的分步命令与前置设置可确保迁移安全。

数据管理(Data Management)功能可用于导入、导出或传输数据。数据管理仅基于 CLI,但部分配置在管理面板中完成。

  • Plan:免费功能
  • Role & permission:Roles > Settings - Transfer tokens 中至少需具备“Access the transfer tokens settings page(访问传输令牌设置页面)”权限
  • Activation:若定义了传输 salt 则可用并已启用
  • Environment:在开发与生产环境中均可用

配置

数据管理功能的部分配置选项在管理面板中可用,部分通过你 Strapi 项目的代码处理。

管理面板设置

WARNING

应在 config/admin 配置文件中定义一个 transfer.token.salt(请参阅 基于代码的配置)。

配置该功能的路径: Settings > Global settings > Transfer Tokens

传输令牌(Transfer tokens)允许用户对 strapi transfer CLI 命令进行授权(请参阅 数据传输 文档)。

传输令牌

Transfer Tokens(传输令牌) 界面显示一个表格,列出所有已创建的传输令牌。更具体地说,它显示每个传输令牌的名称、说明、创建日期和最后使用日期。

从那里,管理员还可以:

  • 点击 来编辑传输令牌的名称、说明或类型,或重新生成令牌。
  • 点击 来删除一个传输令牌。

创建新的传输令牌

  1. 点击 Create new Transfer Token(创建新的传输令牌) 按钮。
  2. 在传输令牌编辑界面中,配置新的传输令牌: | 设置名称 | 说明 | | -------------- | ----------------------------------------------------------------------------- | | Name | 填写传输令牌的名称。 | | Description | (可选)填写传输令牌的说明。 | | Token duration | 选择一个令牌有效时长:7 days(7 天)、30 days(30 天)、90 days(90 天),或 Unlimited(无限制)。 | | Token type | 选择一个令牌类型:
  • Push(推送) 仅允许从本地到远程实例的传输,
  • Pull(拉取) 仅允许从远程到本地实例的传输,
  • 或 Full Access(完全访问) 以允许两种类型的传输。 |
  1. 点击 Save(保存) 按钮。新的传输令牌会显示在界面顶部,并带有一个复制按钮 。

自定义传输令牌

:::caution 出于安全原因,传输令牌仅在创建后立即显示。刷新页面或在管理面板中导航到其他位置时,新创建的传输令牌会被隐藏且不再显示。 :::

重新生成传输令牌

  1. 点击传输令牌的编辑按钮。
  2. 点击 Regenerate(重新生成) 按钮。
  3. 在对话框中点击 Regenerate(重新生成) 按钮以确认。
  4. 复制显示在界面顶部的新传输令牌。

基于代码的配置

必须在 the config/admin file 中定义 transfer.token.salt 值,以便正确生成传输令牌。如果未定义值,该功能将被禁用。该 salt 可以是任意长字符串,为了提高安全性,最好将其添加到 环境变量 中,并使用 env() 工具导入,如下例所示:

JavaScript

module.exports = ({ env }) => ({
  // …
  transfer: { 
    token: { 
      salt: env('TRANSFER_TOKEN_SALT', 'anotherRandomLongString'),
    } 
  },
});

TypeScript

export default ({ env }) => ({
  // …
  transfer: { 
    token: { 
      salt: env('TRANSFER_TOKEN_SALT', 'anotherRandomLongString'),
    } 
  },
});
INFO

导出或传输数据时,管理面板配置包含项目设置,例如 Logo(管理面板菜单 Logo 和身份验证 Logo)。这些 Logo 文件会嵌入到导出文件中,并在导入时重新上传到目标实例。这确保了被传输的实例无需额外的手动设置即可保持其品牌标识。

使用

数据管理系统仅基于 CLI,意味着任何导入、导出或传输命令都必须从终端执行。每个命令的完整文档可从以下页面获取:

NOTE

当两个实例都支持时,strapi transfer 命令默认使用 SHA-256 校验和来验证资源完整性。传递 --no-checksums 可禁用此验证。对于触发错误停滞检测的大文件传输或慢速连接,请在你的 服务器配置 中设置 transfer.remote.assetIdleTimeoutMs。