JFrog帮助中心

我们的新传送门很快就要来了!
文档+知识库





JFrog帮助中心-一个全新的知识体验即将到来!



概述

文件规格可用于指定文件列表,然后可以上传或下载到Artifactory或从Artifactory。它们以JSON格式指定,目前受支持 JFrog CLIJenkins Artifactory插件 TeamCity Artifactory插件,竹工艺品插件

本文描述了Jenkins、TeamCity和Bamboo Artifactory插件中使用的File Specs结构。
你可以阅读JFrog CLI文件规格

下载规范模式提供了使用的选项AQL或通配符模式根据您指定的JSON元素:

页面内容

{"files": [{"pattern"或"aql": "[必选]","target": "[可选,默认值:。/]","props": "[可选]","递归":"[可选,默认值:true]", "flat": "[可选,默认值:false]", "build": "[可选]"," explosive ": "[可选,默认值:false]", "排他":["[可选]"],"sortBy":["[可选]"],"sortOrder": "[可选,默认值:'asc']", "limit":[可选],"offset":[可选]}]}

地点:

元素

描述

模式

[如果未指定'aql'则为必选项]
指定Artifactory中的源路径,应该从那里下载工件,格式如下:[存储库名称]/[存储库路径]。您可以使用通配符来指定多个工件。

目标

(可选)
指定应下载到其中的构件的本地文件系统路径。

为灵活地指定目标路径,可以以。的形式包含占位符{1},{2},{3}……它们被括在括号中的pattern属性中的相应标记所取代。详情请参阅使用占位符

aql

[如果没有指定'pattern'则为必选项]
指定要下载的工件的AQL查询。

道具

(可选)
用分号分隔的"key=value"对列表。(例如,“key1=value1;key2=value2;key3=value3)。只有具有所有指定属性和值的工件才会被下载。

(默认值:false)
如果为真,工件将被下载到指定的确切目标路径,并且它们在源存储库中的层次结构将被忽略。
如果为false,工件将下载到文件系统中的目标路径,同时在源存储库中维护它们的层次结构。

递归

(默认值:真实)
如果为真,工件也会从源存储库中指定路径下的子路径下载。
如果为false,则只下载指定源路径目录中的工件。

构建

(可选)
如果指定,则只下载指定版本的构件。当指定'build'时,'pattern'属性仍然会被考虑。

属性格式为build-name/build-number。

如果未指定版本号,或对版本号使用关键字LATEST,则使用最新发布的版本号。

爆炸

(默认值:false)

如果为true,则下载完成后会提取下载的归档文件。存档文件本身在本地删除。支持的归档类型为:zip、tar;tar.gz;和tgz

除外责任

(可选的。仅当指定'pattern'时适用]

模式的数组(用方括号括起来)禁止下载。与“pattern”属性不同,“exclusions”不能将存储库作为模式路径的一部分。您可以使用通配符来指定多个工件。

例如:["*.sha1","*.md5"]

sortBy

(可选)

由分号分隔的字段组成的排序列表。字段必须是“items”AQL域的一部分。有关更多信息,请阅读AQL文档

排序方式

(默认值:asc)

控件中字段的顺序sortBy选项应该排序。接受ascdesc

限制

(可选)

要获取的最大项数。通常与the连用sortBy选择。

抵消

(可选)

获取项的偏移量(即应该跳过多少项)。通常与the连用sortBy选择。

目前sortBy排序方式限制而且抵消在TeamCity中不支持。


上传规格模式

[{{“文件”:“模式”:“(强制性)”,“目标”:“(强制性)”,“道具”:“(可选)”,“递归”:“可选的,默认值是“真正的””、“平”:“(可选的,默认值是“真正的”)”,“正则表达式”:“[可选的,默认值:'假']”、“爆炸”:“(可选的,默认值:false)”,“除外责任”:["(可选)"]}]}

地点:

元素

描述

模式

(强制)

指定应该上传到Artifactory的工件的本地文件系统路径。您可以使用regexp属性指定的通配符或正则表达式来指定多个工件。
如果使用regexp,则需要使用反斜杠“\”来转义表达式中使用的任何保留字符(例如“。”、“?”等)。

目标

(强制)

在Artifactory中指定目标路径,格式如下:[repository_name]/[repository_path]

如果模式以斜杠结束,例如“repo-name/a/b/”,那么“b”被假设为Artifactory中的一个文件夹,文件被上传到其中。以“repo-name/a/b”为例,在Artifactory中将上传的文件重命名为“b”。

为灵活地指定上载路径,可以以的形式包含占位符{1},{2},{3}……它们被源路径中的相应标记所取代,这些标记被括在括号中,详情请参阅使用占位符

道具

(可选)
用分号(;)分隔的"key=value"对列表将作为属性附加到上传的属性。如果任意键可以取多个值,则每个值用逗号分隔。例如,“key1=value1;key2=value21,value22;key3=value3”。

(默认值:真实)
如果为真,工件将被上传到指定的确切目标路径,并且它们在源文件系统中的层次结构将被忽略。
如果为false,工件将上传到目标路径,同时保持其文件系统层次结构。

递归

(默认值:真实)
如果为真,也会从源目录的子目录中收集工件以便上传。
如果为false,则只上传源目录中的工件。

正则表达式
(默认值:false)
如果为真,该命令将把pattern属性解释为正则表达式,该属性描述要上传的工件的本地文件系统路径。
如果为false,该命令将模式属性解释为通配符表达式。
爆炸

(默认值:false)

如果为true,则上传的归档文件在上传后会被提取。存档文件本身并不保存在Artifactory中。支持的归档类型为:zip、tar;tar.gz;和tgz

除外责任

(可选)

不允许上传的模式数组(用方括号括起来)。

允许使用由regexp属性指定的通配符或正则表达式。如果使用regexp,则需要使用反斜杠“\”来转义表达式中使用的任何保留字符(例如“。”、“?”等)。
例如:["*.sha1","*.md5"]

使用占位符

文件规格提供了巨大的灵活性上传,或下载文件通过使用通配符或带有占位符的正则表达式。

模式属性中括号内的任何通配符都可以与目标属性中相应的占位符相匹配,以便在下载或上传后确定工件的名称。目录的根路径下的所有zip文件将被下载my-local-repo存储库,它们的名称中包含破折号。文件在下载时重命名,用两个破折号替换破折号。

{“文件”:[{“模式”:“my-local-repo / (*) - (*) . zip”,“目标”:“法国人/ {1},{2}. zip”、“递归”:“false”}]}


例子

示例1:文件下的所有文件all-my-frogs目录中的my-local-repo存储库到法国人/ all-my-frogs目录中。

{“文件”:[{“模式”:“my-local-repo / all-my-frogs /”,“目标”:“讨厌的/”}]}


示例2:将AQL查询检索的所有文件下载到本地/输出目录中。

{"files": [{"aql":{"项。找到":{“回购”:“my-local-repo”,“或“美元:[{”和“美元:[{“路径”:{" $匹配”:“。”}, "name": {"$match": "a1. "在" } } ] }, { "$and": [ { "path": { "$match": "*" }, "name": { "$match": "a1.in" } } ] } ] } }, "target": "local/output/" } ] }


示例3:上传

  1. 目录下的所有zip文件2022世界杯阿根廷预选赛赛程目录到邮政编码文件夹,在all-my-frogs存储库。
  2. 目录下的所有TGZ文件2022世界杯阿根廷预选赛赛程目录到tgz文件夹,在all-my-frogs存储库。
  3. 用type = zip和status = ready标记所有zip文件。
  4. 用type = tgz和status = ready标记所有tgz文件。
{“文件”:[{“模式”:“资源/ * . zip”,2022世界杯阿根廷预选赛赛程“目标”:“my-repo / zip /”,“道具”:“type =邮政;状态=准备”},{/ *”模式”:“资源。tgz”、“目标”:“my-repo / tgz”、“道具”:“类型= tgz;状态=准备”}]}


示例4:文件下的所有文件all-my-frogs目录中的my-local-repo存储库除了用于“。zip”文件和“道具”。的文件

{“文件”:[{“模式”:“my-local-repo / all-my-frogs /”,“除外责任”:[“* . zip”、“all-my-frogs /道具。*"]}]}


例5:从my-local-repo存储库下载三个最旧的zip文件到local/output目录。

{“文件”:[{“模式”:“my-local-repo / * . zip”、“sortBy”:“创造”,“限制”:3,“目标”:“本地/输出/}]}


例6:从my-local-repo存储库下载三个最旧的zip文件到local/output目录。本文件规范使用AQL。

{"files": [{"aql":{"项。找到":{“回购”:“my-local-repo”,“或“美元:[{”和“美元:[{“路径”:{" $匹配 ": "*" }, " 名称”:{" $匹配”:“* . zip " } } ] } ] } }, " sortBy”:“创造”,“限制”:3,“目标”:“本地/输出/“}}


例7:generic-local存储库,它属于以下版本,已经发布到Artifactory - build名称:构建以及建筑编号:10

{“文件”:[{“模式”:“generic-local”、“构建”:“构建/ 10”}]}


例8:generic-local存储库,它属于构建build,已经发布到Artifactory。发布到Artifactory的最新构建号的构件将被下载。

{“文件”:[{“模式”:“generic-local”、“构建”:“构建”}]}


模式验证

JSON模式允许您注释和验证JSON文件。JFrog文件规范模式可在JSON模式存储目录和以下链接:https://github.com/jfrog/jfrog-cli/blob/v2/schema/filespec-schema.json


使用Jetbrains ide (Intellij IDEA, Webstorm, Goland等)?

文件规范模式自动应用于以下文件模式:

* * / * . json文件规范
* * . json文件规范
* .filespec


使用Visual Studio代码?

要应用文件规范模式验证,请安装JFrog VS-Code扩展

或者,将以下内容复制到设置中。json文件:

settings.json
“json。schema ": [{"fileMatch": ["**/filespecs/*. schema ": ["json”、“*文件规范*。json”、“*。Filespec "], "url": "https://raw.githubusercontent.com/jfrog/jfrog-cli/v2/schema/filespec-schema.json"}]
  • 没有标签
版权所有©2023 JFrog Ltd。