如何使用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
您看到的第一个模板是“规范模板”,它是用于从脚本中获取变量的文件规范。由于您可以使该脚本适应您所能想到的尽可能多的任务,因此我们决定将规范文件以及repo和文件名作为脚本的参数。您可以硬编码路径,如果您喜欢,只要您有{"创建":{$ gt:“$ {time_stamp} "}在您的AQL中,它将工作,但是将名称和repo都作为参数将允许您灵活地为下载使用通配符。
第二个参数是文件的名称,正如我们提到的,它作为一个变量传递给Spec文件。该脚本还使用该文件名查找本地文件的时间戳并查找可能的下载。
更有效的方法可能是使脚本适应查找校验和并在此基础上进行搜索。AQL字段例如“actual_md5”、“actual_sha1”或“sha256”。
模板是一个从脚本中接受变量的规范文件。在本例中,我们使用了下面的文件,我们将其命名为template。规范:{
“文件”:[{
" aql ": {
”项。查找“:{”
“回购”:“${回购}”,
“美元和“:[{
“创建”:{$ gt:“$ {time_stamp} "},
“名称”:{" $匹配”:“${名称}"}
}}}}]}
能够选择您想要使用的模板,可以在下载大量工件时提供令人难以置信的定制灵活性。
进一步的改善
就像对回购名称使用通配符一样,我们也可以将通配符用于名称,尽管这样会失去时间戳的好处。剧本可以重写或改进,以允许这种类型的功能,在这一点上,这取决于你的创造力。更大的脚本可以允许更有效的查询,将所有下载聚合到一个查询中,并检查它们各自的时间戳,但逻辑基本保持不变。