跳到正文

系统与健康状况 ​

存活状态、就绪状态、指标、OpenAPI 文档以及服务器的功能。

本组中的操作及其访问规则、重试规则、参数和响应。每个请求都需携带密钥:Authorization: Bearer <密钥>(参见“身份验证”)。

操作 ​

检查详细就绪状态 ​

GET HEAD /health/ready

访问: 任何有效的密钥或会话 · 重试: 可安全重试(读取)

当数据库和存储均有响应时返回 ready,同时给出本节点的 role(api 或 reader)、当前是否接受写入(在读取网关上,以及磁盘仅剩预留的可用空间期间,writable 为 false)、读取网关的共享下载槽位,以及上传和下载的准入与带宽汇总计数器。服务器正在排空请求或某个依赖项不可用时,返回 503 并带有 Retry-After。该请求不计入请求预算;无密钥的负载均衡器请使用 getReadinessStatus。

响应 200

字段类型必需规则
rolestring是取值之一:api, reader
sharedDownloadsobject是可以为 null
sharedDownloads.slotinteger是不小于 0
sharedDownloads.slotsinteger是不小于 0
sharedDownloads.activeboolean是—
sharedDownloads.leaseSecondsinteger是不小于 0
statusstring是取值之一:ready
writableboolean是—
replicationobject否可以为 null
replication.copiesinteger是0–16
replication.requiredinteger是1–16
replication.singleCopyUntilstring (date-time)是可以为 null
replication.nodestring否最多 63 个字符
replication.profilestring否取值之一:ha-2, ha-3
replication.peers数组(object)否最多 16 项
replication.peers[].namestring是最多 63 个字符
replication.peers[].connectedboolean是—
replication.peers[].diskstring是最多 24 个字符
replication.peers[].completeboolean是—
replication.peers[].witnessboolean是—
transfersobject是—
transfers.uploadsobject是—
transfers.uploads.admissionobject是—
transfers.uploads.bandwidthobject是—
transfers.uploads.sessionsobject否—
transfers.downloadsobject是—
transfers.downloads.admissionobject是—
transfers.downloads.bandwidthobject是—
transfers.downloads.sessionsobject否—

响应: 200, 400, 401, 403, 404, 409, 422, 503, 507

示例

bash
curl -X GET "$ARKVORY_URL/health/ready" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

获取服务器能力与限制 ​

GET HEAD /api/v1/capabilities

访问: 任何有效的密钥或会话 · 重试: 可安全重试(读取)

返回 API 版本、网关角色、功能开关(例如 selfRegistration 或 mirrorFeed),以及客户端需要适配的限制:最大对象大小(maxObjectBytes,十进制字符串)、分片上传的最小和最大分片大小、最大分片数和最大页面大小。客户端启动时读取一次即可;它不列出任何资源。

响应 200

字段类型必需规则
apiVersions数组(string)是—
gatewayRolestring是取值之一:api, reader
features映射(boolean)是—
limitsobject是—
limits.maxObjectBytesstring否用十进制数字表示的整数,以字符串形式发送
limits.partBytesinteger否分片上传的最小分片大小。
limits.maxPartBytesinteger否—
limits.maxPartsinteger否—
limits.maxPageSizeinteger否—

响应: 200, 400, 401, 403, 404, 409, 422, 503, 507

示例

bash
curl -X GET "$ARKVORY_URL/api/v1/capabilities" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

检查负载均衡器就绪状态 ​

GET HEAD /health/status

访问: 任何人,无需密钥 · 重试: 可安全重试(读取)

无需密钥,也不返回详情:返回 200 和 {"status":"ready"},或返回 503(unavailable 或 draining)并带有 Retry-After。依赖项检查是共享的,并缓存一秒,因此频繁探测不会增加数据库负载,且该探测不计入请求预算。

响应 200

字段类型必需规则
statusstring是取值之一:ready, unavailable, draining

响应: 200, 400, 403, 503

示例

bash
curl -X GET "$ARKVORY_URL/health/status"

检查进程是否存活 ​

GET HEAD /health/live

访问: 任何人,无需密钥 · 重试: 可安全重试(读取)

只要进程能响应 HTTP,就返回 200 和 {"status":"ok"}。它不检查任何依赖项,因此用它决定是否重启,用 getReadinessStatus 决定是否导入流量。

响应 200

字段类型必需规则
statusstring是取值之一:ok

响应: 200, 400, 403, 503

示例

bash
curl -X GET "$ARKVORY_URL/health/live"

获取 OpenAPI 文档 ​

GET HEAD /api/v1/openapi.json

访问: 任何有效的密钥或会话 · 重试: 可安全重试(读取)

返回此部署的 OpenAPI 3.0 文档,其中的 x-arkvory-* 扩展描述每个操作的访问、重试和网关规则。surface(discovery、identity、catalog、transfers、administration 或 operations)只返回对应的范围;未知或重复的查询参数会返回 400。对所有调用方,该文档都相同,且不授予任何权限:要了解当前凭据可以调用什么,请使用 listVisibleOperations。

参数

名称位置类型必需规则
surface查询string否取值之一:discovery, identity, catalog, transfers, administration, operations; Documentation view only; not filtered by caller permissions.

响应 200

字段类型必需规则
openapistring是取值之一:3.0.3
infoobject是—
pathsobject是—

响应: 200, 400, 401, 403, 404, 409, 422, 503, 507

示例

bash
curl -X GET "$ARKVORY_URL/api/v1/openapi.json" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

获取 Prometheus 指标 ​

GET HEAD /health/metrics

访问: 任何有效的密钥或会话 · 重试: 可安全重试(读取)

以 Prometheus 文本格式(text/plain; version=0.0.4)返回进程指标,供采集器抓取。计数器和直方图属于当前进程,重启后从零开始(参见 arkvory_process_start_time_seconds);标签仅限路由模板、方法、状态类别和传输方向,从不包含制品、密钥或账户的名称。抓取不计入请求预算。

响应: 200, 400, 401, 403, 404, 409, 422, 503, 507

示例

bash
curl -X GET "$ARKVORY_URL/health/metrics" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -o file

列出当前凭据可调用的操作 ​

GET HEAD /api/v1/operations

访问: 任何有效的密钥或会话 · 重试: 可安全重试(读取)

按 operationId 排序,列出当前凭据可在此网关上调用的操作,每项包含其所属范围、重试规则、所需操作权限,以及仅在调用时才检查的 conditions(例如 resource-state 或 upload-owner)。repository 会加入该仓库的操作(未知或无权访问的仓库返回 404),surface 将列表限定在一个范围;每页包含 limit 项(1–100,默认 50),将 after 设为 next 即可继续。该结果仅供参考:可据此构建菜单,但每个真实请求都会重新鉴权,读取网关不会列出会产生变更的方法。

参数

名称位置类型必需规则
repository查询string否匹配 ^[a-z0-9][a-z0-9_-]{0,63}$
surface查询string否取值之一:discovery, identity, catalog, transfers, administration, operations
after查询string否匹配 ^[A-Za-z][A-Za-z0-9]{0,95}$
limit查询integer否1–100; 默认值 50

响应 200

字段类型必需规则
apiVersionstring是取值之一:v1
documentVersionstring是匹配 ^\d+\.\d+\.\d+$
gatewayRolestring是取值之一:api, reader
repositorystring是匹配 ^[a-z0-9][a-z0-9_-]{0,63}$; 可以为 null
advisoryboolean是取值之一:true
items数组(object)是最多 100 项
items[].operationIdstring是匹配 ^[A-Za-z][A-Za-z0-9]{0,95}$
items[].methodstring是取值之一:get, head, post, put, patch, delete
items[].pathstring是匹配 ^/; 最多 512 个字符
items[].summarystring是最多 1024 个字符
items[].surfacestring是取值之一:discovery, identity, catalog, transfers, administration, operations
items[].visibilitystring是取值之一:public, authenticated, self, repository, owned-resource, delegated, bootstrap, administrator
items[].retrystring是取值之一:read, never-automatic, idempotent, idempotency-key, compare-and-swap, reconcile-upload, reconcile-job
items[].requiredActions数组(string)是最多 33 项; 不允许重复项; 每项:取值之一:repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read, service-account.read, service-account.manage, policy.read, policy.manage, credential.read, credential.manage, service-audit.read, backup.read, backup.manage
items[].conditions数组(string)是最多 6 项; 不允许重复项; 每项:取值之一:resource-state, upload-owner, job-owner, reference-owner, delegation-target-and-ceiling, own-key
nextstring是匹配 ^[A-Za-z][A-Za-z0-9]{0,95}$; 可以为 null

响应: 200, 400, 401, 403, 404, 409, 422, 503, 507

示例

bash
curl -X GET "$ARKVORY_URL/api/v1/operations" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Arkvory · ProAnimaStudio