我想从Artifactory中提取最新的软件包,但前提是它尚未下载。
我使用的是通用仓库,我正在使用PowerShell下载最新的软件包,例如。
Invoke-RestMethod -Uri "https://myArtifactoryUrl/artifactory/myrepo/folder/package/package-[RELEASE].zip" -Method Get -OutFile "C:\temp\package.zip" -Headers $Header
所以我想得到最新的'的校验和。文件并将其与本地文件进行比较,无需下载任何内容。如果不同,我会下载它。
我的问题是,我无法看到(在Artifactory API中)如何在回购中获取最新文件的校验和,仅在特定文件上?
包可能非常大,所以我想避免不必要的下载。
我注意到Artifactory CLI为你做了这个校验和比较,但它有点使用它(这是在云,公司网络,对于Windows上的木偶模块)。我宁愿在PS中这样做
任何操纵者都会非常感激。我不认为这应该特别困难,但也许这不是最好的方法吗?
答案 0 :(得分:3)
您可以做的是发送HEAD请求,这样您实际上并没有下载文件。在响应中获取文件名后,您可以查询Artifactory以获取校验和并进行比较。 此外,在运行搜索最新工件时,您会收到以下标题:
服务器:Artifactory / 4.13.0
X-Artifactory-Id:27e2ee2e1ade8482:-7fa4c4b5:15ad2daab10:-8000
最后修改时间:2017年3月15日星期三16:44:59 GMT
ETag:10d759d4a8a297bf5e28a6fc7eaf4b969d78a098
X-Checksum-Sha1:10d759d4a8a297bf5e28a6fc7eaf4b969d78a098
Accept-Ranges:bytes
X-Checksum-Md5:e30227b29222ec6f007524d91829878a
X-Artifactory-Filename:multi2-3.5-20170315.164450-2.jar
内容 - 处置:附件;
文件名= “multi2-3.5-20170315.164450-2.jar”;
文件名* = UTF-8''multi2-3.5-20170315.164450-2.jar
Content-Type:application / java-archive
内容长度:1022
日期:2017年3月15日星期三16:45:26 GMT
这有帮助吗?