跳转到内容
搜索文档

Artifacts 工作原理

最后更新 查看 MarkdownAgent 设置

Artifacts 按需创建 Git 存储库。每个存储库都是一个隔离的 Git 服务,具有自己的远程 URL、令牌和持久状态。

核心模型

命名空间是存储库的顶级容器。存储库位于一个命名空间内,其名称在该命名空间内是唯一的。

Artifacts 不会单独配置命名空间。当您使用新的命名空间名称创建第一个存储库时,Artifacts 会隐式创建该命名空间。

命名空间为存储库提供了命名和路由边界。命名空间和存储库名称共同构成了存储库的稳定地址,API 响应还会返回存储库 ID。

Durable Objects 类似,存储库是一个单一的逻辑实例,Cloudflare 可以从任何区域对其进行路由。

因为每个存储库都是隔离的,所以它拥有自己的:

  • Git 历史记录和引用(ref)
  • 访问令牌和远程 URL
  • 生命周期和持久状态

存储库可以按需创建。这使得 Artifacts 能够对分布在不同存储库中的许多小型工作单元进行建模。

分叉(Forking)遵循相同的模型。分叉会创建一个新存储库,该存储库以现有存储库的历史记录为起点,然后以自己的令牌、路由和生命周期独立演变。

访问权限也是在存储库范围内的。每个存储库都有自己的令牌,并且每个令牌都可以限制在特定的访问级别:

  • read 用于克隆(clone)、拉取(fetch)、下拉(pull)、索引和审查
  • write 用于推送(push)和其他修改操作

您的 Worker 或 API 层决定何时生成这些令牌。这使身份验证和授权保持在存储库之外,同时仍然使存储库可供 Workers、REST API 或任何标准 Git 客户端使用。

持久性

Artifacts 默认是持久的。存储库不依赖于保持存活的单个进程或保持可用的单个数据中心。

在幕后,Cloudflare 会跨多个数据中心同步复制存储库数据,并将其异步复制到对象存储和快照中。您无需构建自己的复制、故障转移或快照流水线来保持存储库状态可用。

Artifacts 处理这些 Git 工作流底层的 Git 服务器生命周期和存储基础设施。

了解更多

关于存储库模式,请参阅 Artifacts 最佳实践。关于令牌行为,请参阅 Git 协议。关于产品更新,请参阅 Artifacts 更新日志

这篇文档对您有帮助吗?