获取 'latest' 工件的校验和

Getting checksum of 'latest' artifact

我想从 Artifactory 中提取最新的包,但前提是它尚未下载。

我正在使用通用存储库,我正在使用 PowerShell 下载最新的软件包,例如

Invoke-RestMethod -Uri "https://myArtifactoryUrl/artifactory/myrepo/folder/package/package-[RELEASE].zip" -Method Get -OutFile "C:\temp\package.zip" -Headers $Header

所以我想获取'latest'文件的校验和并与本地文件进行比较,而不下载任何东西。如果不同,我会下载它。

我的问题是我看不到(在 Artifactory API 中)如何仅在特定文件上获取存储库中最新文件的校验和?

这个包可能很大,所以我想避免不必要的下载。

我注意到 Artifactory CLI 会为您比较这个校验和,但使用它有点麻烦(这是在云、公司网络中,用于 windows 上的 puppet 模块)。我宁愿在 PS

中这样做

任何引导将不胜感激。我不认为这应该特别困难,但这也许不是最好的方法?

你可以做的是发送一个 HEAD 请求,这样你实际上并没有下载文件。在响应中获取文件名后,您可以向 Artifactory 查询校验和并进行比较。 此外,当 运行 搜索最新的工件时,您会得到以下 headers 返回:

服务器:Artifactory/4.13.0

X-Artifactory-Id: 27e2ee2e1ade8482:-7fa4c4b5:15ad2daab10:-8000

Last-Modified:2017 年 3 月 15 日,星期三 16:44:59 GMT

ETag: 10d759d4a8a297bf5e28a6fc7eaf4b969d78a098

X-Checksum-Sha1: 10d759d4a8a297bf5e28a6fc7eaf4b969d78a098

Accept-Ranges:字节数

X-Checksum-Md5:e30227b29222ec6f007524d91829878a

X-Artifactory-Filename: multi2-3.5-20170315.164450-2.jar

Content-Disposition:附件;

文件名="multi2-3.5-20170315.164450-2.jar";

文件名*=UTF-8''multi2-3.5-20170315.164450-2.jar

Content-Type: application/java-archive

Content-Length: 1022

日期:2017 年 3 月 15 日,星期三 16:45:26 GMT

有帮助吗?