HTTP 400 尝试通过 API 清除 Jfrog Artifactory 中虚拟 Helm 存储库的缓存

问题描述 投票:0回答:1

我在自托管 Jfrog Artifactory(版本 7.49.8)上的虚拟 Helm 存储库(仅包含本地存储库)的缓存有问题。我试图通过 API https://jfrog.com/help/r/jfrog-rest-apis/zap-cache.

对整个 repo 的缓存进行 zap

但是,无论我尝试使用虚拟、回购还是本地回购(如错误消息所示),我都会收到状态 400 错误:

curl -H "X-Jfrog-Art-Api: $ADMIN_API_KEY" \
  http://artifactory.my-company.com/artifactory/api/zap/my-virtual-helm-repo

{
    "errors": [
        {
            "status": 400,
            "message": "Repository 'my-virtual-helm-repo' is not a local repository"
        }
    ]
}

好吧,所以我尝试切换包含在虚拟仓库中的本地仓库(即使 UI 不提供本地仓库的切换):

curl -H "X-Jfrog-Art-Api: $ADMIN_API_KEY" \
  http://artifactory.my-company.com/artifactory/api/zap/my-included-local-helm-repo

{
    "errors": [
        {
            "status": 400,
            "message": "Got a zap request on a non-local-cache node 'my-included-local-helm-repo:'."
        }
    ]
}

我可以通过 Artifcatory UI Zap Cache 虚拟仓库。让 REST 调用起作用的诀窍是什么?

artifactory jfrog
1个回答
0
投票

让我们把这个答案分成两部分:

第 1 部分 - Zap 缓存的作用是什么?

Zapping a cache 是指强制Retrieval Cache Period 和Missed Retrieval Cache Period 超时。您还可以清除整个存储库缓存。此信息源自 JFrog 文档。换句话说,Zap Cache 功能重置了整个远程的 MCRP,确保在 Zap 之后将新的元数据发送到客户端。Zap Cache Link

需要准确和最新元数据的用户应降低设置,可能通过将其设置为“0”来禁用它。此操作会导致拉取速度变慢,因为 Artifactory 会经常提供新的元数据。但是,这可确保始终使用最准确的数据。如果用户优先考虑性能,他们应该增加此设置。然而,这样做意味着 Artifactory 将更频繁地使用其缓存,从而影响准确性。请参阅“远程存储库如何工作”以获得更好的理解。

第 2 部分 - 了解失败的原因

理解了术语及其意义后,就更容易理解失败的原因了。上面的 API 是在包含本地仓库的虚拟仓库上执行的,但是 API 应该是在缓存仓库上执行的,缓存仓库是在创建远程仓库后自动创建的。缓存存储库存储以前根据 MCRP 完成的缓存资源。远程存储库如何工作

© www.soinside.com 2019 - 2024. All rights reserved.