如何解决在VCS标签中下载文件时“无法从主zip资源下载文件”的错误

依琳娜Floim
2023-01-22 11:09

Artifactory支持列出任何VCS存储库、代理的所有标记和分支的能力,并使用Artifactory远程存储库缓存这些标记和分支。有一些REST API端点允许下载标记或分支。当你试图在VCS标记中下载文件通过Artifactory,在某些情况下,当请求特定文件时,可能会返回404响应。

举个例子,大摇大摆。Json文件。kubernetes / kubernetes库在Github中使用:

$ curl -u: " http:///artifactory/api/vcs/downloadTagFile//kubernetes/kubernetes/v1.16.10!api/openapi-spec/swagger.json "

"errors": [{
"status": 404,
"message": "Could not download 'kubernetes-v1.16.10/api/openapi-spec/swagger. "Json `来自主zip资源"
})

请求失败,即使请求的文件在此路径中。相同的文件可以通过Github直接请求,使用其API

$ curl "https://api.github.com/repos/kubernetes/kubernetes/contents/api/openapi-spec/swagger.json?ref=v1.16.10"

"message": "此API返回大小不超过1mb的blobs。请求的blob太大了,不能通过API获取,但是你可以使用Git Data API来请求大小不超过100 MB的blob。
“错误”:(

“资源”:“Blob”,
“字段”:“数据”,
“代码”:“too_large”

),
:“documentation_url https://docs.github.com/rest/reference/repos get-repository-content”

根据Github的回应,该API仅限于大小小于1MB的文件。因此,这个要求为5.7MB。Json文件失败。

当试图通过Artifactory解析文件时,以下警告将打印在日志中:

2021-11-18T12:34:43.621Z [jfrt][警告][745701dcc02f4ea2] [o.a.a.v.r。VcsRemoteHandler:407] [http-nio-8081-exec-5] -资源驱动查找失败(未找到),尝试repository.zip方法…

这意味着文件解析失败,Artifactory试图将分支缓存为归档文件。如果启用了存档搜索特性,这将是可能的。要启用它,请导航到UI→管理→Artifactory→常规→设置→启用档案搜索。该复选框可从Artifactory 7.15.3中获得,并且从该版本开始默认禁用(在7.15.3以下的版本中默认启用存档搜索)。

启用后,缓存的zip文件可以在远程缓存存储库中找到:

用户添加图片