ARTIFACTORY:如何解决在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 ' from main zip resource '
})
}
请求失败,即使请求的文件存在于此路径中。同样的文件可以通过Github直接请求,使用它的API:
$ curl "https://api.github.com/repos/kubernetes/kubernetes/contents/api/openapi-spec/swagger.json?ref=v1.16.10"
{
"message": "这个API返回的blob的大小不超过1mb。请求的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的swagger。Json文件失败。
当尝试通过Artifactory解析文件时,将在日志中打印以下警告:
[2014-11-18] [jfrt] [WARN] [745701dcc02f4ea2] [o.a.a.v.r。]VcsRemoteHandler:407] [http-nio-8081- exex -5] -资源驱动查找失败(未找到),尝试repository.zip方法…
这意味着文件解析失败,Artifactory试图将分支缓存为存档文件。如果启用了存档搜索功能,这将是可能的。要启用它,请导航到UI→管理→人工→常规→设置→启用存档搜索。此复选框从Artifactory 7.15.3开始可用,从该版本开始默认禁用(在低于7.15.3的版本中默认启用存档搜索)。
启用后,可以在远程缓存存储库中找到缓存的zip文件:
