跳转到内容
搜索文档

存储库

最后更新 查看 MarkdownAgent 设置

Artifacts 将工作存储在存储库中。存储库是一个隔离的 Git 服务,具有自己的历史记录、引用(ref)、远程 URL、令牌和持久状态。

每个存储库都位于一个命名空间内。如果命名空间尚不存在,则当您在其中创建第一个存储库时,Artifacts 会创建该命名空间。

命名空间对相关存储库进行分组,存储库名称在此分组中标识一个存储库。

了解存储库标识

存储库具有三个标识符:

  • 命名空间名称
  • 存储库名称
  • API 返回的存储库 ID

命名空间和存储库名称构成了您在 Workers 绑定(binding)以及 REST API 和 Git 远程端中使用的稳定地址。当您在 API 响应或日志中需要不透明的标识符时,可以使用存储库 ID。

每个存储库都与其他存储库隔离。令牌、生命周期、引用(ref)和更改仅适用于该存储库。

了解存储库 API

Artifacts 通过三个接口暴露同一个存储库:

接口 用途 返回内容
Workers 绑定(binding) 从 Worker 创建、列出、导入、检查、分叉、删除以及生成令牌 存储库元数据、存储库句柄和存储库范围内的令牌结果
REST API 从外部系统创建、列出、导入、检查、分叉、删除以及生成令牌 包含存储库元数据和令牌结果的 Cloudflare API 响应
Git 协议 克隆、拉取(fetch)、下拉(pull)和推送存储库内容 基于 HTTPS 的标准 Git 行为

这些接口指向同一个存储库。

例如,您可以从 Workers 绑定(binding)REST API 创建一个存储库,然后将返回的 remote URL 递给标准 Git 客户端。您无需为每个接口创建不同的存储库。

了解接口之间的关系

Workers 绑定(binding)和 REST API 是控制平面接口。使用它们来管理存储库和令牌。

Git 协议是数据平面接口。使用它通过正常的 Git 工作流读取和写入提交、树(tree)和引用(ref)。

这种划分引出了一种通用模式:

  1. 使用 Workers 绑定(binding)或 REST API 创建存储库。
  2. 读取存储库的 remote URL。
  3. 生成在存储库范围内生效的令牌。
  4. remote 和令牌与 git clonegit fetchgit pullgit push 一起使用。

了解存储库范围

存储库范围在两个方面起作用:命名和访问。

命名空间内的命名

存储库名称在命名空间内是唯一的,而不是在您的整个账户中唯一。如果对您的环境或租户布局有帮助,您可以在不同的命名空间中重复使用简短的存储库名称。

例如,名为 app 的存储库可以同时存在于 prod 命名空间和 staging 命名空间中。

存储库内的令牌

Artifacts 令牌是在存储库范围内生效的。为某个存储库生成的令牌不会授予对另一个存储库的访问权限,即使这两个存储库位于同一个命名空间中也是如此。

克隆、拉取(fetch)和下拉(pull)时使用 read 令牌。仅当客户端必须推送(push)更改时才使用 write 令牌。

将存储库用作工作单元

当您将每个存储库视为一个工作单元时,Artifacts 的效果最好。

当这些单元需要独立的历史记录、清理和访问控制时,请为每个智能体、会话、用户任务、基线或分叉目标使用一个存储库。使用命名空间按环境、租户或分片(shard)对这些存储库进行分组。

有关更多信息,请参阅 命名空间Artifacts 工作原理Artifacts 最佳实践

这篇文档对您有帮助吗?