如何解决在VCS标签中下载文件时“无法从主zip资源下载文件”的错误
Artifactory支持列出任何VCS存储库、代理的所有标记和分支的能力,并使用Artifactory远程存储库缓存这些标记和分支。有一些REST API端点允许下载标记或分支。当你试图在VCS标记中下载文件通过Artifactory,在某些情况下,当请求特定文件时,可能会返回404响应。
举个例子,大摇大摆。Json文件。kubernetes / kubernetes库在Github中使用:
$ curl -u
{
"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文件可以在远程缓存存储库中找到: