如何做时间戳下载与JFrog CLI
使用Artifactory和JFrog CLI进行时间戳下载
使用像wget这样的下载工具,你可以把你的文件放到下面时间戳因此,下次你运行下载命令或脚本时,它只会下载比本地已有的文件更新的文件。
细节
属性中并没有直接提供该特性JFrog CLI因为我们不会在二进制文件中存储信息。
然而,使用JFrog CLI连同它的文件规范包含的特性AQL使用简短的脚本进行查询,实际上可以获得相同的结果。
决议
例如,我们可以创建一个bash脚本,在本例中我们将其命名为tmstpDownload.sh,并添加以下一行脚本来调用JFrog CLI(确保CLI位于您的$PATH中的一个目录中,或者以其他方式调整脚本以获取CLI文件):jfrog rt dl -规范= 3美元——spec-vars =“time_stamp = $(找到2美元printf“20% ay - % - %广告”| | printf 0);回购= " $ 1 ";name = " $ 2 "这个脚本有3个参数,在代码中分别引用为$1、$2和$3。$ tmstpDownload.sh
您看到的第一个是“规范模板”,这是一个用于从脚本中获取变量的文件规范。由于您可以为您能想到的任何任务调整这个脚本,我们决定将spec文件以及repo和文件名作为脚本的参数。你可以硬编码路径,只要你有{"创建":{$ gt:“$ {time_stamp} "}在你的AQL中,它可以工作,但同时使用name和repo作为参数将允许你灵活地为下载使用通配符。
第二个参数是文件的名称,正如我们提到的,它作为变量传递给Spec文件。该脚本还使用该文件名查找本地文件的时间戳,并查找可能的下载。
一个更有效的方法是将脚本改编为寻找校验和并以此为基础进行搜索。例如,AQL字段可以是"actual_md5"、"actual_sha1"或"sha256"。
模板是一个规范文件,从脚本中获取变量。在本例中,我们使用以下文件,并将其命名为template。规范:{
“文件”:[{
" aql ": {
”项。查找":{
“回购”:“${回购}”,
“美元和“:[{
“创建”:{$ gt:“$ {time_stamp} "},
“名称”:{" $匹配”:“${名称}"}
}}}}]}
在下载大量工件时,能够选择您想要使用的模板,可以在定制中提供令人难以置信的灵活性。
进一步的改善
就像我们如何将通配符用于回购名称一样,我们也可以将它们用于名称,尽管它将失去时间戳的好处。脚本可以重写或改进以允许这种类型的功能,在这一点上,这取决于您的创造力。更大的脚本可以允许更有效的查询,将所有下载聚合到一个查询中,并检查它们各自的时间戳,但逻辑基本上保持不变。
