云客户?
免费开始>
在MyJFrog中升级>
云的新功能>





使用

Distribution提供了一种方便且最新的自描述API,各种工具/框架可以使用它来自动创建REST调用。

分布REST API端点可以通过调用RESTful API的任何标准方式调用。本节以cURL为例介绍如何使用Distribution REST API。

使用和配置cURL

身份验证

如果Artifactory的以下信息发生了变化,请记住也在这里更新

发行版的REST API支持这些形式的身份验证:

  • 使用您的用户名和密码进行基本身份验证
  • 基本身份验证使用您的用户名和API密匙

  • 使用一个访问令牌
    而不是用于基本身份验证的密码。
  • 使用一个访问令牌
    作为授权标头中的承载令牌(授权:持票人),并附上登入令牌。


基URL

平台REST URL由:

//api/< api - version >

例如

#使用JFrog URL http://myjfrog.acme.org/distribution/api/v1 #使用Artifactory服务器主机名和Artifactory路由器端口http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1

一般

测试连接

描述:测试与配电的连接。

自:1.0
安全:不需要身份验证。
用法:GET / api / v1 /系统/平
请求头信息:N/A
消耗:N/A


旋度的例子
$ curl -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/ping"


响应状态码:

200 -连接正常
500 -错误。显示如下错误:"
以下一个或多个服务不可用:分发器、数据库和/或redis。

响应标头:N/A
生产:application / json


响应
Error {"status_code ": 500, "message": "以下一个或多个服务不可用:分发服务器、数据库和/或redis"}


获取系统信息

描述:获取一般信息,包括系统不稳定时的错误详细信息。

注意:不要为签名密钥设置密码短语。当通过UI创建发布包时,JFrog Distribution目前不支持输入密码短语。

自:1.0
安全:不需要身份验证。
用法:GET / api / v1 /系统/信息
请求头信息:N/A
消耗:N/A


旋度的例子
$ curl -u myUser:myP455w0rd-X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/info"


响应状态码:

200 -成功

响应标头:N/A
生产:application / json


响应
{“状态”:“稳定”、“消息 ": "...", " 版本”:“1.0”、“service_id”:“jfds@……”}



页面内容

获取系统设置

描述:获取系统设置
自:1.6
安全:管理员只
用法:GET / api / v1 /系统/设置
请求头信息:N/A
消耗:N/A

旋度的例子
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/settings"

响应状态码:
200 -成功
响应标头:N/A
生产:application / json

响应
{"call_home_enabled": true}

更新系统设置

描述:更新系统设置
自:1.6
安全:管理员只
用法:POST / api / v1 /系统/设置
请求头信息:N/A
消耗:application / json

旋度的例子
$ curl -u user:password -H "Accept: application/json" -H "Content-Type: application/json" -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/settings" -T system_settings.json
system_settings.json
{"call_home_enabled": true}
类型 要求 默认值 描述
call_home_enabled

布尔

没有

1.6

如果启用,将使用统计数据发送到JFrog


响应状态码:

200 -成功


签名密钥

上传和传播用于分发的GPG签名密钥

描述:GPG密钥用于签署发布包。GPG密钥对将自动传播到人工源和目的地。你可以用它来做以下事情之一:

  • 上传GPG密钥对从您的文件系统到JFrog发行版
  • 从保险库中检索钥匙。

笔记

  • 需要JFrog任务控制4.5.0及以上版本。
  • 分发依赖于JFrog任务控制中心与JPDs通信来传播GPG密钥
  • 必须将密钥复制并粘贴到请求体中。
  • 你不能用public_keyprivate_key参数。vault_data参数。
  • vault_id参数应该是Hashicorp,因为它是目前唯一支持的保险库。

自:2.4

从2.8.1版本开始,Distribution支持管理多个GPG签名密钥签署发布包。这使您能够为每个发布包分配签名密钥对,从而为您提供选择使用哪些密钥来签名发布包的粒度,而不是使用相同的密钥对来签名所有发布包。


安全:管理员只
用法:POST /api/v1/keys/{protocol: pgp|gpg}
请求头信息:N/A
消耗:application / json

JSON请求体应该有“set_as_default”:真的如果这是设置的第一个键,或者Artifactory中没有默认键。

职位:/ api / v1 /键/{协议:pgp | gpg}身体:{“关键”:{“public_key”:“——开始pgp公钥块……——结束PGP公钥块”、“private_key”:“——开始PGP私钥块……----- end PGP私钥块-----"}, "propagate_to_edge_nodes": true, "fail_on_propagation_failure": false } Expected response: { "report": { "message" : "error message if exists" "status" : PARTIAL_SUCCESS | SUCCESS | FAILURE | PROPAGATION_NOT_REQUESTED | PROPAGATION_NOT_SUPPORTED_BY_MISSION_CONTROL | NO_GPG_KEY_TO_PROPAGATE "details" : [ { "jpd_id" : "id1", "name" : "US-EAST" "key_alias" : "my first key" "status" : "SUCCESS" }, { "jpd_id" : "id2", "name" : "US-WEST" "key_alias" : "my first key" "status" : "SUCCESS" }, ] } }
多个GPG密钥样本
{"key": {"alias": "name", "public_key": "", "private_key": ""}, "propagate_to_edge_nodes": false, "fail_on_propagation_failure": false, "set_as_default": true}
Vault示例用法
身体:{“fail_on_propagation_failure”:假的,“propagate_to_edge_nodes”:假的,“关键”:{" vault_data ":{“vault_id”:“hashicorp”、“public_key”:{“路径”:“kv /公共/路径”,“关键”:“公共”},“private_key”:{“路径”:“kv /私人/路径”,“关键”:“私人”}预期响应:{"报告":{“消息”:“如果存在错误消息”“状态”:PARTIAL_SUCCESS失败成功| | | PROPAGATION_NOT_REQUESTED | PROPAGATION_NOT_SUPPORTED_BY_MISSION_CONTROL | NO_GPG_KEY_TO_PROPAGATE“细节”:[{“jpd_id”:"id1", "name": "US-EAST" "key_alias": "my first key" "status": "SUCCESS"}, {"jpd_id": "id2", "name": "US-WEST" "key_alias": "my first key" "status": "SUCCESS"},]}}

更新别名

描述:更新别名。
自:2.8.1发布
安全:管理员只
用法:PUT键/ gpg / {alias_name}
请求头信息:N/A
消耗:application / json

示例请求
{"new_alias": {}}

得到关键

描述:按别名检索公钥。
自:2.8.1发布
安全:管理员只
用法:得到键/ gpg /{别名}

请求头: N /
消耗: application / json


示例响应
{“别名”:“别名”“public_key”:“——开始PGP公钥块…----- end PGP公钥块-----",}


获取密钥列表

描述:检索所有键的列表。
自:2.8.1发布
安全:管理员只
用法:/ / gpg钥匙/别名

请求头信息: N/A
消耗:application / json
示例响应
[{“别名”:“别名”,“默认”:假|真,“密码”:假|真  }, .......]

删除键

描述:删除密钥。
自:2.8.1发布
请注意:删除默认密钥后,将自动使用上传时间最早的密钥作为默认密钥。
安全:管理员只
用法:删除/键/ gpg / {alias_name}
请求头信息:N/A
消耗:application / json


将GPG签名密钥传播到分发边缘

描述:传播GPG密钥对到新添加的分布边缘。
自:2.4
笔记:需要任务控制4.5.0及以上版本。
安全:管理员只
用法:POST /api/v1/keys/{protocol: pgp|gpg}/propagate
请求头信息:N/A
消耗:application / json

从发行版2.13.2开始,GPG密钥的传播如下:

传播行为 解释
当不提供参数时 默认密钥为传播
api / v1 /键/ pgp /传播?所有= true

传播所有可用的密钥。

api / v1 /键/ pgp /传播?Alias =<别名>

使用别名传播键。

例如,api / v1 /键/ pgp /传播?别名= 'my_key'使用别名my_key传播键。

传播可以通过别名键或所有键进行,但不能同时进行。

response: {"report": {"message": "error message if exists" "status": PARTIAL_SUCCESS | SUCCESS | FAILURE | PROPAGATION_NOT_REQUESTED | PROPAGATION_NOT_SUPPORTED_BY_MISSION_CONTROL | NO_GPG_KEY_TO_PROPAGATE "details": [{"jpd_id": "id1", "name": "US-EAST" "key_alias": "my first key" "status": "SUCCESS"}, {"jpd_id": "id2", "name": "US-WEST" "key_alias": "my first key" "status": "SUCCESS"},]}

上传GPG签名密钥用于分发

描述:上传GPG密钥对给JFrog Distribution。此密钥对将用于签署发布包。

注意:发行版2.4已弃用
自:
1.0
安全:管理员只
用法:把/ api / v1 / / gpg钥匙
请求头信息:N/A
消耗:application / json


旋度的例子
$ curl -u user:password -H "Accept: application/json" -H "Content-Type: application/json" -X PUT "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/keys/gpg" -T gpg.json



gpg.json
{“public_key”:“——开始PGP公钥 ----- ....——结束PGP公钥块”、“private_key”:“——开始PGP私钥 ----- ....----- end PGP私钥块-----"}


响应状态码:

200 -密钥设置成功。

响应标头:N/A
生产:application / json


响应
{"status_code ": 201, "message": "设置GPG公私钥"}

获取公钥

描述:返回在分发中设置的公共GPG密钥。
注意:T私钥字段将以JSON响应格式显示,前提是该公钥的私钥存在于数据库中。
如果没有上传GPG公钥,则返回如下消息:No public GPG key exists in Distribution。
自:tripwire
安全:仅限已验证的用户。用户必须具有发布包的读取权限。
用法:得到/ api / v1 / / gpg钥匙
消耗:application / json

旋度的例子
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/keys/gpg"


回应:

响应
{“public_key”:“公共gpg密钥> <”、“private_key ": "****" }



发布包

创建发布包版本

描述:创建一个新的发布包版本。

自:1.0
安全:仅限已验证的用户。用户必须匹配发布包写权限
用法:发布api / v1 / release_bundle
请求头信息:
X-GPG-PASSPHRASE - String -签名密钥的密码短语(如果适用)
消耗:application / json


旋度的例子
$ curl -u user:password -H "Accept: application/json" -H "Content-Type: application/json" -H "X-GPG-PASSPHRASE: keysPassphrase" -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle" -T createbundle.json



createbundle.json
{"name": "" ", "version": "" ", "dry_run": true|false, "sign_immediate ": true|false, "storing_repository": "repository-name"|null, "description": "" ", "release_notes": {"syntax": "markdown|asciidoc|plain_text", "content": "" "}, "spec": {"queries": [{"aql": "items. "找到({\“回购\”,\“example-repo-local \”})”,“query_name”:“查询1”“映射”:[{“输入”:“正则表达式”,“输出”:“1美元/ 2美元”}],“added_props”:[{“关键”:“,”值 ": [""] } ], " exclude_props_patterns”:[" example_exclude_prop_pattern_1”、“example_example_prop_pattern_2 " ] } ] } }
类型 要求 默认值 描述
名字
字符串 是的 N/A 1.0 发布包名称
版本
字符串 是的 N/A 1.0 发布捆绑版本
dry_run
布尔 没有 1.0 如果为true,则只进行解析和验证。
注意:在2.x以下的版本中,此参数default先前设置为true。
sign_immediately
布尔 没有 1.2 如果为true,则自动签署发布包版本。
storing_repository
字符串 没有 1.3 源Artifactory中用于存储发布包构件的存储库名称。如果没有提供,Artifactory将使用默认的(需要Artifactory 6.5或更高版本)。
描述
字符串 没有 1.0 发布包的描述
release_notes
字符串 没有 1.0 描述发布包版本的发布说明
release_notes.syntax
字符串 没有 “plain_text” 1.0 发行说明的语法
release_notes.content
字符串 是的 N/A 1.0 发布说明的内容
规范
对象 是的 N/A 1.0 通过在此发布包中收集和分发的工件来描述规范
spec.source_artifactory_id
字符串 弃用 N/A 2.0
spec.queries
列表(对象) 是的 N/A 1.0 要收集工件的查询对象列表。
spec.queries.aql
字符串 是的 N/A 1.0 从Artifactory收集工件的一个ql查询
spec.queries.query_name
字符串 没有 “查询-{指数}” 1.0

显示查询对象时要使用的名称

请注意发布包查询名称长度必须在2到32个字符之间,且必须以字母字符开头,后跟字母数字或“_-”。仅限字符。

spec.queries.added_props
列表(对象) 没有 1.0 添加的属性列表,这些属性将在发布包之后添加到工件中
spec.queries.added_props.key
字符串 是的 N/A 1.0
属性键要在分布式构件上创建或更新。
spec.queries.added_props.values
列表(字符串) 没有 [] 1.0 发布发布包后要添加到属性键的值列表
spec.queries.mappings
列表(对象) 没有 1.0 映射列表,在发布包之后应用于工件路径
spec.queries.mappings.input
字符串 是的 N/A 1.0 工件路径的正则表达式匹配器
spec.queries.mappings.output
字符串 是的 N/A 1.0 替换由“输入”匹配器匹配的工件路径。捕获组可以作为“$1”使用。
spec.exclude_props_patterns
列表(字符串) 没有 2.5.0 发布发布包后要排除的属性键模式列表。这不会对“added_props”的特性。

响应状态码:

201 -成功创建发布包版本
409 -已经存在相同名称和版本的发布包
从人工AQL传递错误的状态码

响应标头:N/A
生产:application / json

响应
{"name": "bundle-name", "version": "1.0", "state": "OPEN", "created": "2018-03-14T10:19:30.678Z", "artifacts": [{"checksum": "0651d26f4cc6ed60cd9d273c440daf7617459d3f6e3d512188ff19d4933e4ff6", "source_repo_path": "conanx/demo/sample-conan1/1.0/testing/export/conanfile.py", "props": [{"key": "conan.package. py", "props": [{"key": "conan.package. py"。Version ", "values":["1.0"]},…}, {"xray_scan_info": {"blocked": boolean。"blocked_reason": string(如果未被阻塞则为null)},…, "archived": false}

NPM、Bower和NuGet包类型

当使用像NPM、Bower和NuGet这样需要传递依赖的包类型时,你需要创建两个独立的发布包:一个工件发布包;一个依赖发布包。

您可以生成build.info使用JFrog CLI,并使用以下命令创建发布包依赖工件AQL查询:

工件AQL
构建。找到({“名称”:“buileName”,“数量”:“buildNumber”})其中包括(“module.artifact.item”)
依赖AQL
构建。找到({“名称”:“buildName”,“数量”:“buildNumber”})其中包括(“module.dependency.item”)

动态发布包

描述:创建、签名并将临时发布包分发到分发边。
自:2.8.1发布
安全:仅限已验证的用户。用户必须匹配发布包写权限
用法:发布api / v1 /动态/分发

{"storing_repository": "repo-name" "spec": {"queries": [{"aql": "items. "找到({\“美元和\”:[{\“美元或\”:[{\“回购\”:{\“$ eq \”,\“example-repo-local \"}}]}]})", " query_name demo-aql“:” " } ] }, " distribution_rules”:[{:“:域名?通配符*","city_name": "? "通配符*","country_codes": ["?通配符*"]}]}

更新发布包版本

描述:更新现有的未签名发布包版本。

自:1.2
安全:仅限已验证的用户。用户必须匹配发布包写权限
用法:将api / v1 / release_bundle /:名称/:版本
请求头信息:
X-GPG-PASSPHRASE - String -签名密钥的密码短语(如果适用)
消耗:application / json


旋度的例子
$ curl -u user:password -H "Accept: application/json" -H "Content-Type: application/json" -H "X-GPG-PASSPHRASE: keysPassphrase" -X PUT "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version" -T createbundle.json



updatebundle.json
{"dry_run": true|false, "sign_immediate ": true|false, "description": "" ", "storing_repository": "repository-name"|null, "release_notes": {"syntax": "markdown|asciidoc|plain_text", "content": "" "}, "spec": {"queries": [{"aql": "items. txt "。找到({\“回购\”,\“example-repo-local \”})”,“query_name”:“查询1”“映射”:[{“输入”:“正则表达式”,“输出”:“1美元/ 2美元”}],“added_props”:[{“关键”:“,”值 ": [""] } ], " exclude_props_patterns”:[" example_exclude_prop_pattern_1”、“example_example_prop_pattern_2 " ] } ] } }
类型 要求 默认值 描述
dry_run

布尔

没有

1.2

如果为true,则只进行解析和验证。
请注意:此参数default先前在2.x以下的版本中设置为true。

sign_immediately

布尔

没有

1.2

如果为true,则自动签署发布包版本。

storing_repository

字符串

没有

1.3

源Artifactory中用于存储发布包构件的存储库名称。如果没有提供,Artifactory将使用默认的(需要Artifactory 6.5或更高版本)。

描述

字符串

没有

1.2

发布包的描述

release_notes

字符串

没有

1.2

描述发布包版本的发布说明

release_notes.syntax

字符串

没有

“plain_text”

1.2

发行说明的语法

release_notes.content

字符串

是的

N/A

1.2

发布说明的内容

规范

对象

是的

N/A

1.2

通过在此发布包中收集和分发的工件来描述规范

spec.queries

列表(对象)

是的

N/A

1.2

要收集工件的查询对象列表。

spec.queries.aql

字符串

是的

N/A

1.2

从Artifactory收集工件的一个ql查询

spec.queries.query_name

字符串

没有

“查询-{指数}”

1.2

显示查询对象时要使用的名称

请注意发布包查询名称长度必须在2到32个字符之间,且必须以字母字符开头,后跟字母数字或“_-”。仅限字符。

spec.queries.added_props

列表(对象)

没有

1.2

添加的属性列表,这些属性将在发布包之后添加到工件中

spec.queries.added_props.key

字符串

是的

N/A

1.2

属性键要在分布式构件上创建或更新

spec.queries.added_props.values

列表(字符串)

没有

[]

1.2

发布发布包后要添加到属性键的值列表

spec.queries.mappings

列表(对象)

没有

1.2

映射列表,在发布包之后应用于工件路径

spec.queries.mappings.input

字符串

是的

N/A

1.2

工件路径的正则表达式匹配器

spec.queries.mappings.output

字符串

是的

N/A

1.2

替换由“输入”匹配器匹配的工件路径。捕获组可以作为“$1”使用。

spec.exclude_props_patterns
列表(字符串) 没有 2.5.0

发布发布包后要排除的属性键模式列表。这不会对“added_props”的特性。

响应状态码:

200 -成功更新发布包版本
400 -发布包版本已签名
从人工AQL传递错误的状态码

响应标头:N/A
生产:application / json

响应
{"name": "bundle-name", "version": "1.0", "state": "OPEN", "created": "2018-03-14T10:19:30.678Z", "artifacts": [{"checksum": "0651d26f4cc6ed60cd9d273c440daf7617459d3f6e3d512188ff19d4933e4ff6", "source_repo_path": "conanx/demo/sample-conan1/1.0/testing/export/conanfile.py", "props": [{"key": "conan.package. py", "props": [{"key": "conan.package. py"。Version ", "values":["1.0"]},…}, {"xray_scan_info": {"blocked": boolean。"blocked_reason": string(如果未被阻塞则为null)},…, "archived": false}

NPM、Bower和NuGet包类型

当使用像NPM、Bower和NuGet这样需要传递依赖的包类型时,你需要创建两个独立的发布包:一个工件发布包;一个依赖发布包。

您可以生成build.info使用JFrog CLI,并使用以下命令创建发布包依赖工件AQL查询:

工件AQL
构建。找到({“名称”:“buileName”,“数量”:“buildNumber”})其中包括(“module.artifact.item”)
依赖AQL
构建。找到({“名称”:“buildName”,“数量”:“buildNumber”})其中包括(“module.dependency.item”)

发布包版本

描述:签署一个发布包版本,并将其存储在存储库中的源Artifactory(需要Artifactory 6.5或更高版本)中。
自:1.2
安全:仅限已验证的用户。用户必须匹配发布包写权限
用法:发布api / v1 / release_bundle /:名称/:版本/标志
请求头信息:X-GPG-PASSPHRASE - String -签名密钥的密码短语(如果适用)

旋度的例子
$ curl -u user:password -H "Accept: application/json" -H "Content-Type: application/json" -H "X-GPG-PASSPHRASE: keysPassphrase" -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version/sign"
类型 要求 默认值 描述
storing_repository

字符串

没有

1.3

源Artifactory中用于存储发布包构件的存储库名称。如果没有提供,Artifactory将使用默认的(需要Artifactory 6.5或更高版本)。

signing_key_alias 字符串 没有 默认的关键 2.8.1发布 将用于签署发布包的密钥的名称。如果没有提供别名,将使用默认键。


响应状态码:

200 -成功签署发布包版本
400 -发布包版本已经签署

响应标头:N/A
生产:application / json

响应
{"name": "bundle-name", "version": "1.0", "state": "SIGNED", "created": "2018-03-14T10:19:30.678Z", "artifacts": [{"checksum": "0651d26f4cc6ed60cd9d273c440daf7617459d3f6e3d512188ff19d4933e4ff6", "source_repo_path": "conanx/demo/sample-conan1/1.0/testing/export/conanfile.py", "props": [{"key": "conan.package. py", "props": [{"key": "conan.package. py"。Version ", "values":["1.0"]},…},…, "archived": false}

获取所有发布包的所有版本

描述:返回所有发布包版本。该端点支持分页,每个页面最多返回10个发布包。

自:1.0
安全:仅限已验证的用户。只显示用户具有读权限的发布包。
用法:得到的api / v1 / release_bundle [?start_pos =位置):
请求头信息:N/A
消耗:N/A


旋度的例子
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle?start_pos = 0 "


响应状态码:

200 -成功

响应标头:
range limit - startpos - number
range limit - endpos - number
range limit - total - number

生产:application / json


响应
[{"name": "release-bundle-name", "version": "1.0.0", "state": "OPEN", "description": "release bundle description text", "release_notes": {"content": "release notes text", "syntax": "plain_text"}, "created": "2018-03-14T17:36:35.416Z", "created_by":"[username]", "distributed_by":"[username]" "artifacts": [], "archived": false},…]


获取发布包版本

描述:返回所有发布包版本。该端点支持分页,每个页面最多返回10个发布包。

自:1.0
安全:仅限已验证的用户。用户必须具有发布包的读权限。
用法:获得api / v1 / release_bundle /:名字(?start_pos =位置):
请求头信息:N/A
消耗:N/A


旋度的例子
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name?start_pos = 0 "


响应状态码:

200 -成功
没有找到发布包
响应标头:
range limit - startpos - number
range limit - endpos - number
range limit - total - number

生产:application / json


响应
[{"name": "release-bundle-name", "version": "1", "state": "OPEN", "description": "发布包描述文本","release_notes": {"content": "发布包描述文本","syntax": "plain_text"}, "created": "2018-03-14T17:36:35.416Z", "created_by":"[username]", "distributed_by":"[username]", "artifacts": [{"checksum": "5880e05b5886a2fcd9a5a6dace38cd4f243affa06719c5e63116b16094e95a31", "props": [{"key": "build. txt ", "checksum": "5880e05b5886a2fcd9a5a6dace38cd4f243affa06719c5e63116b16094e95a31 . "时间戳","values":["1521049005953"]},…, "source_repo_path": "artifactory-generic/artifactory-client-java-api-0.9.2.jar", "target_repo_path": "artifactory-generic/artifactory-client-java-api-0.9.2.jar"},…], "archived": false},…]


获取发布包版本

描述:查看特定的发布包版本。支持多种响应格式。

自:1.0
安全: 仅限已验证的用户。用户必须具有发布包的读权限。
用法:获得api / v1 / release_bundle /:名称/:版本吗?格式=json | JWS | jose]
请求头信息:N/A
消耗:N/A


旋度的例子
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version?= json格式”

响应状态码:

200 -成功
404 -未找到发布包或发布包版本
响应标头:N/A

生产:application / json(默认)


= json格式
{"name": "Bundle -name", "version": "1.0.0", "state": "OPEN", "description": "Bundle description", "release_notes": {"content": "发行说明描述文本","syntax": "plain_text"}, "created": "2018-05-02T08:45:16.860Z", "created_by":"[username]", "distributed_by":"[username]", "artifacts": [{"source_repo_path": "example-repo-local/Screen Shot 2018-04-05 at 10.47.16.png", "target_repo_path": "example-repo-local/ change/Screen Shot 2018-04-05 at 10.47.16.png", "checksum":"5a730b01e81e2aa3b5188bcef3be8e4e7d61f83b6156b22a33c9a3f23ff38e19", "props": [{"key": "jira", "values":["1"]}]},…, "archived": false}
生产:应用程序/穆+ json(格式= jw)

格式= jw
{"header": "eyJraWQiOiIzZWFiNGEiLCJhbGciOiJSUzI1NiJ9", "payload":“eyJuYW1lIjoiYnVuZGxlLW5hbWUiLCJ2ZXJzaW9uIjoiMS4wLjAiLCJkZXNjcmlwdGlvbiI6IkJ1bmRsZSBkZXNjcmlwdGlvbiIsInJlbGVhc2Vfbm90ZXMiOnsiY29udGVudCI6InJlbGVhc2Ugbm90ZXMgZGVzY3JpcHRpb24gdGV4dCIsInN5bnRheCI6InBsYWluX3RleHQifSwiY3JlYXRlZCI6IjIwMTgtMDUtMDJUMDg6NDU6MTYuODYwWiIsImFydGlmYWN0cyI6W3sicmVwb19wYXRoIjoiZXhhbXBsZS1yZXBvLWxvY2FsL2FjaGFuZ2UvU2NyZWVuIFNob3QgMjAxOC0wNC0wNSBhdCAxMC40Ny4xNi5wbmciLCJjaGVja3N1bSI6IjVhNzMwYjAxZTgxZTJhYTNiNTE4OGJjZWYzYmU4ZTRlN2Q2MWY4M2I2MTU2YjIyYTMzYzlhM2YyM2ZmMzhlMTkiLCJwcm9wcyI6 w3sia2v5ijoiamlyysisinzhbhvlcyi6wyixil19xx0seyjyzxbvx3bhdggioijlegftcgxllxjlcg8tbg9jywwvywnoyw5nzs9ty3jlzw4gu2hvdcaymde4lta0lta1igf0idewljq3lje2icgyks5wbmcilcjjagvja3n1bsi6ijizmzy2mzk5n2eyzgyxy2fmzdzhzwi1njkxnjzhzjkxzjyzzdqwzjrmndfinjgxy2jln2rmmjlkmwe1yze3mgeilcjwcm9wcyi6w3sia2v5ijoiamlyysisinzhbhvlcyi6wyixil19xx0seyjyzxbvx3bhdggioijlegftcgxllxjlcg8tbg9jywwvywnoyw5nzs9ty3jlzw4gu2hvdcaymde4lta0lta1igf0idewljq3lje2ideucg5niiwiy2hly2tzdw0ioii1ytczmgiwmwu4mwuyywezyjuxodhiy2vmm2jlogu0ztdknjfmodninje1 nmiymmezm2m5ytnmmjnmzjm4zte5iiwichjvchmiolt7imtlesi6imppcmeilcj2ywx1zxmiolsimsjdfv19lhsicmvwb19wyxroijoizxhhbxbszs1yzxbvlwxvy2fsl2fjagfuz2uvu2nyzwvuifnob3qgmjaxoc0wnc0wnsbhdcaxmc40ny4xniaomykucg5niiwiy2hly2tzdw0ioijjymzjzjk0nzkzyzq1ztk5nmy2ytqxody5m2zjyjbhzdu1nzrkmzjiyzuwn2njnmvjmdazmdkxmmfjmwq3mduziiwichjvchmiolt7imtlesi6imppcmeilcj2ywx1zxmiolsimsjdfv19xx0”、“签名”:“QWzTD2uXhLw5FW1483qEYA_h47jak8YE24mLwuF1UcT9yTYZBdEMrFWTz0uZVrPtlqi65Ek6oNeSFZO657sjpuTOpfPIg053nxOoIa4mxlxMS5nCM50Xj3qobcll0P_sX8Il8AGWbX9oI9HvSGAKYbxmu-3kVs0W1tCacb_VuHsL5KkgY2Thq5dBKhQ73aS1cE-CnFobQKGcsx10eFhEFV8VbajGLpKV8nhERDE4XA5oRARA-CczLlEYNnvn5aRD-Q1n5yI7Cys8hoDIxDLT2OCQ5alb9h4D4w7mGJrtQG0xNWsstGOTSL1HLXAe27qvBxCIsp6afX675AkOs1Eg0g”}
生产:应用程序/穆(格式=穆)

格式=穆
eyJraWQiOiIzZWFiNGEiLCJhbGciOiJSUzI1NiJ9.eyJuYW1lIjoiYnVuZGxlLW5hbWUiLCJ2ZXJzaW9uIjoiMS4wLjAiLCJkZXNjcmlwdGlvbiI6IkJ1bmRsZSBkZXNjcmlwdGlvbiIsInJlbGVhc2Vfbm90ZXMiOnsiY29udGVudCI6InJlbGVhc2Ugbm90ZXMgZGVzY3JpcHRpb24gdGV4dCIsInN5bnRheCI6InBsYWluX3RleHQifSwiY3JlYXRlZCI6IjIwMTgtMDUtMDJUMDg6NDU6MTYuODYwWiIsImFydGlmYWN0cyI6W3sicmVwb19wYXRoIjoiZXhhbXBsZS1yZXBvLWxvY2FsL2FjaGFuZ2UvU2NyZWVuIFNob3QgMjAxOC0wNC0wNSBhdCAxMC40Ny4xNi5wbmciLCJjaGVja3N1bSI6IjVhNzMwYjAxZTgxZTJhYTNiNTE4OGJjZWYzYmU4ZTRlN2Q2MWY4M2I2MTU2 yjiyytmzyzlhm2yym2zmmzhlmtkilcjwcm9wcyi6w3sia2v5ijoiamlyysisinzhbhvlcyi6wyixil19xx0seyjyzxbvx3bhdggioijlegftcgxllxjlcg8tbg9jywwvywnoyw5nzs9ty3jlzw4gu2hvdcaymde4lta0lta1igf0idewljq3lje2icgyks5wbmcilcjjagvja3n1bsi6ijizmzy2mzk5n2eyzgyxy2fmzdzhzwi1njkxnjzhzjkxzjyzzdqwzjrmndfinjgxy2jln2rmmjlkmwe1yze3mgeilcjwcm9wcyi6w3sia2v5ijoiamlyysisinzhbhvlcyi6wyixil19xx0seyjyzxbvx3bhdggioijlegftcgxllxjlcg8tbg9jywwvywnoyw5nzs9ty3jlzw4gu2hvdcaymde4lta0lta1igf0idewljq3lje2ideucg5niiwiy2hly2tzdw0ioii1ytczmgiwmwu4mwuyYWEzYjUxODhiY2VmM2JlOGU0ZTdkNjFmODNiNjE1NmIyMmEzM2M5YTNmMjNmZjM4ZTE5IiwicHJvcHMiOlt7ImtleSI6ImppcmEiLCJ2YWx1ZXMiOlsiMSJdfV19LHsicmVwb19wYXRoIjoiZXhhbXBsZS1yZXBvLWxvY2FsL2FjaGFuZ2UvU2NyZWVuIFNob3QgMjAxOC0wNC0wNSBhdCAxMC40Ny4xNiAoMykucG5nIiwiY2hlY2tzdW0iOiJjYmZjZjk0NzkzYzQ1ZTk5NmY2YTQxODY5M2ZjYjBhZDU1NzRkMzJiYzUwN2NjNmVjMDAzMDkxMmFjMWQ3MDUzIiwicHJvcHMiOlt7ImtleSI6ImppcmEiLCJ2YWx1ZXMiOlsiMSJdfV19XX0.QWzTD2uXhLw5FW1483qEYA_h47jak8YE24mLwuF1UcT9yTYZBdEMrFWTz0uZVrPtlqi65Ek6oNeSFZO657sjpuTOpfPIg053nxOoIa4mxlxMS5nCM50Xj3qobcll0P_sX8Il8AGWbX9oI9HvSGAKYbxmu-3kVs0W1tCacb_VuHsL5KkgY2Thq5dBKhQ73aS1cE-CnFobQKGcsx10eFhEFV8VbajGLpKV8nhERDE4XA5oRARA-CczLlEYNnvn5aRD-Q1n5yI7Cys8hoDIxDLT2OCQ5alb9h4D4w7mGJrtQG0xNWsstGOTSL1HLXAe27qvBxCIsp6afX675AkOs1Eg0g


获取最新发布包版本

描述:检索发布包的最新版本。
请注意Latest是一个保留词。发布包版本不能包含这个词。
自:tripwire
安全:仅限已验证的用户。用户必须具有发布包的读取权限。
用法:/ api / v1 /release_bundle /名称/:最新
请求头信息:N/A
消耗:N/A
旋度


旋度的例子
$ curl -u用户:密码为http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/LATEST

响应状态码:
200 -成功
没有发布包的权限
404 -未找到发布包或发布包版本
响应

= json格式
{"name": "the_release_bundle", "version": "6", "storing_repository": "release-bundles", "description": "Maven bundle description", "created": "2020-05-03T12:33:40.759+0300", "created_by": "[username]", "distributed_by": "[username]", "artifacts": [{"checksum": "d4f8baa9d0b46aa1e5d9e60bfd7acc1265c51723844d81ad0b2dfc9f702e89f8", "props": [], "sourceRepoPath": "release-bundles/the_release_bundle/6/example-repo-local/folder1/public_key.txt", "targetRepoPath":"example-repo-local/folder1/public_key.txt"}, {"checksum": "c7e875ebb4a69de287eb040375a88d254acf85c2b69dc9a59689d657e7f2d3cb", "props": [], "sourceRepoPath": "release-bundles/the_release_bundle/6/example-repo-local/audio-1.5.0.tar.gz", "targetRepoPath": "example-repo-local/audio-1.5.0.tar.gz"}], "artifacts_size": 2892, "archived": false, "state": "SIGNED", "spec": {"queries": [{"aql": "items. txt"。find({\"repo\": \"example-repo-local\"})", "query_name": "query-0", "mappings": [], "added_props": [], "query_type": "AQL"}], "exclude_props_patterns": ["example_exclude_prop_pattern_1", "example_example_prop_pattern_2"]}}

删除发布包的所有版本

描述:仅在JFrog发行版上删除一个发布包的所有版本若要从分发的分发边缘中删除,请参见从发布边缘删除发布包版本

自:1.0
安全: 仅限已验证的用户。用户必须具有发布包的删除权限。
用法:删除/ api / v1 /release_bundle /:名称
请求头信息:N/A
消耗:N/A


旋度的例子
$ curl -u user:password -X DELETE "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name"


响应状态码:

204 -成功删除发布包版本
没有找到发布包

响应标头:N/A

生产:N/A

删除发布包版本

描述:仅在JFrog发行版上删除特定的发布包版本。

自:1.0
安全: 仅限已验证的用户。用户必须具有发布绑定的删除权限允许从分布边缘删除它 它被分发到哪里。看到从发布边缘删除发布包版本
用法:删除/ api / v1 /release_bundle /:名称/版本
请求头信息:N/A
消耗:N/A


旋度的例子
$ curl -u user:password -X DELETE "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version"


响应状态码:

204 -成功删除发布包版本
404 -未找到发布包或发布包版本

响应标头:N/A
生产:N / A

导出发布包版本归档文件

描述:触发JFrog发行版的发布包导出过程。有关更多信息,请参见在气隙环境中分发发布包

注意:导入过程在分发边缘上执行。
自:
2.5
安全:仅限已验证的用户。用户必须匹配发布包分发权限
用法:发布api / v1 /出口/ release_bundle /{名称}/ {version}

旋度的例子
curl -XPOST 'http://localhost:8082/distribution/api/v1/export/release_bundle/{name}/{version}' -uadmin:密码

类型

要求

默认值

描述

名字

字符串

是的

N/A

2.5

发布包名称

版本

字符串

是的

N/A

2.5

发布捆绑版本

响应状态码:

202 -成功触发生成存档导出版本的过程
生成导出版本归档文件失败

获取导出的发布包版本状态

描述:获取导出的发布包进程的状态。有关更多信息,请参见在气隙环境中分发发布包
自:2.5
安全:仅限已验证的用户。用户必须匹配发布包分发权限
用法:得到的api / v1 /出口/ release_bundle /{名称}/ {version} /状态
消耗:application / json

旋度的例子
curl -XGET 'http://localhost:8082/distribution/api/v1/export/release_bundle/{name}/{version}/status' -uadmin:password

响应状态码:

202 -请求成功
400 -返回状态失败

= json格式
{"status":"IN_PROGRESS|FAILED|NOT_TRIGGERED|COMPLETED", "message":" IN_PROGRESS|FAILED|NOT_TRIGGERED|COMPLETED", "message":"可选消息,以防失败,我们有一些信息要传递","download_url":"http://artifactory_url/path_if_status_completed"}

删除导出的发布包归档文件

描述:从发行版中删除导出的发布包存档。有关更多信息,请参见在气隙环境中分发发布包
自:2.5
安全:仅限已验证的用户。用户必须具有Release Bund的删除权限勒。
用法:删除api / v1 /出口/ release_bundle /{名称}/ {version}
消耗:N/A

旋度的例子
curl -X DELETE 'http://localhost:8082/distribution/api/v1/export/release_bundle/{name}/{version} .



分布

发布包版本

描述:计划一个发布包的版本以发布到分发边缘。动作跟踪ID将被返回。
自:1.0
安全:仅限已验证的用户。用户必须具有发布包的发布权限。分发边将根据用户的权限进行过滤。

2.13.2版权限变更

从发行版2.13.2开始,用户必须具备:

  • 读取和部署目标存储库的权限
  • 权限在目标存储库上
  • D分配权限在所需的发布包上

这是对以前版本的一个重大改变,任何拥有任何权限的用户都可以发布发布包。


用法:POST / api / v1 /分销/:名称/:版本
请求头信息:N/A
消耗:application / json

旋度的例子
$ curl -u user:password -H "Content-Type: application/json" -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/distribution/:name/:version" -T distribute.json
distribute.json
{"dry_run": true|false, "auto_create_missing_repositories": true|false, "distribution_rules": [{"site_name": "? "通配符*","city_name": "? "通配符*","country_codes": ["?通配符*"]}]}
类型 要求 默认值 描述

dry_run

布尔 没有

如果为true,则只进行解析和验证。
请注意:此参数default先前在2.x以下的版本中设置为true。

auto_create_missing_repositories

布尔 没有

从2.8.1版开始。

如果这是真的,这使您能够在发布发布包时自动在目标边缘或工件上创建缺失的目标存储库。有关更多信息,请参见目标存储库自动创建

distribution_rules

列表(对象) 是的 N/A 描述用于选择“分布边缘”的筛选器。必须解决至少一个边。

distribution_rules.site_name

字符串 没有 “*” 站点名称的通配符过滤器

distribution_rules.city_name

字符串 没有 “*” 站点城市名称的通配符过滤器

distribution_rules.country_codes

列表(字符串) 没有 ["*"] 站点国家代码的通配符过滤器

响应状态码:

200 - dry_run成功
202 -成功安排分发
400 -发布包版本必须在发行前签名
404 -未找到发布包或发布包版本
响应标头:N/A


生产:
application / json

响应
{"id": 188527534551203840, "sites": [{"service_id": "jfrt@01cc8hkzy1zgtc1wqw3zk41p2a", "name": "US_NY_Art01", "type": "edge"},…]}


停止发布包版本分发

描述:停止发布包版本分发到分发边缘。

自:1.1
安全:仅限已验证的用户。用户必须具有发布包的发布权限。分发边将根据用户的权限进行过滤。
用法:把/ api / v1 /分销/:名称/:版本/中止
请求头信息:N/A
消耗:application / json


旋度的例子
$ curl -u user:password -X PUT "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/distribution/:name/:version/abort"

响应状态码:

202 -成功安排分发中断。返回受停止请求影响的分布边列表。

204 -没有分配边缘,分配正在进行中
404 -未找到发布包或发布包版本

响应标头:N/A

生产:application / json


响应
[{"name":"US_NY_Art01", "service_id":"jfrt@01cejrg5ack7dd1v3r213a0vx9", "type":"edge"}, {"name":"UK_LN_Art02", "service_id":"jfrt@01cejrfwjtt65d1g9asq8h1cda", "type":"edge"}]

删除从分布边缘发布包版本

描述:在发布边缘中安排要删除的发布包版本。动作跟踪ID将被返回。设置一个参数,以便在成功时保留或删除JFrog发行版中的发布包。

自:1.0
安全:仅限已验证的用户。用户必须具有发布包的发布删除权限。分发边将根据用户的权限进行过滤。
用法:POST / api / v1 /分销/:名称/:/删除版本
请求头信息:N/A
消耗:application / json


旋度的例子
$ curl -u user:password -H "Content-Type: application/json" -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/distribution/bundle98/version100/delete" -T delete.json



delete.json
{"dry_run": true|false, "distribution_rules": [{"site_name": "? "通配符*","city_name": "? "通配符*","country_codes": ["?通配符*"]}],"on_success": "keep|delete"}
类型 要求 默认值 描述
dry_run
布尔 没有 真正的
如果为true,则只进行解析和验证
distribution_rules
列表(对象) 是的 N/A 描述用于选择“分布边”的筛选器。必须解决至少一个边。
distribution_rules.site_name
字符串 没有 “*” 站点名称的通配符过滤器
distribution_rules.city_name
字符串 没有 “*” 站点城市名称的通配符过滤器
distribution_rules.country_codes
列表(字符串) 没有 ["*"] 站点国家代码的通配符过滤器
on_success
字符串 没有 保持 在指定的发布边缘完成删除后,在JFrog发布本身的发布包版本上执行的操作。


响应状态码:

200 - dry_run成功
202 -计划删除成功
404 -未找到发布包或发布包版本

响应标头:N/A

生产:application / json


响应
{"id": 188527534551203840, "sites": [{"service_id": "jfrt@01cc8hkzy1zgtc1wqw3zk41p2a", "name": "US_NY_Art01", "type": "edge"},…]}


获取分发状态详细信息

描述:获取所有发行版的状态详细信息。

自:1.0
安全:仅限已验证的用户。只显示用户具有读权限的发布包的发行版。
用法:得到的api / v1 / release_bundle /分布
请求头信息:N/A

消耗:N/A

旋度的例子
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/distribution"

响应状态码:

200 -成功

响应标头:N/A

生产:application / json


响应
[{"distribution_id": 188527534551203840, "distribution_friendly_id": 1, "created_by":"[username]", "distributed_by":"[username]", "start_time":"[YYY-MM_DDTHH:HH:MM:SS. sh "。心肌梗死:秒+ UTF]”、“finish_time”:[YYY-MM_DDTHH: HH: MM: SS。MI:Sec+UTF],"duration":[milliseconds], "type": "distribute | delete_release_bundle_version", "release_bundle_name": "release-bundle", "release_bundle_version": "1.0.0", "status": "Not distributed | In progress | Completed | Failed", "distribution_rules": [{"site_name": "*", "city_name": "*", "country_codes":["*"]},…], "sites": [{"status": "Not distributed | In progress | Completed | Failed", "general_error": "<错误解释>","target_artifactory": {"service_id": "jfrt@01cc8hkzy1zgtc1wqw3zk41p2a", "name": "US_NY_Art01", "type": "edge"}, "total_files": 4, "total_bytes": 4403784, "distributed_bytes": 0, "distributed_files": 0, "general_error": "" ", "file_errors": [], "files_in_progress":[]},…},…]


通过发布包名称获取发布状态详细信息

描述:获取一个发布包的所有版本的所有发行版的状态详细信息。

自:1.0
安全:仅限已验证的用户。用户必须具有发布包的读权限。
用法:获得api / v1 / release_bundle /:名称/分布
请求头信息:N/A

消耗:N/A

旋度的例子
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/distribution"


响应状态码:

200 -成功

响应标头:N/A

生产:application / json


响应
[{"distribution_id": 188527534551203840, "distribution_friendly_id": 1, "created_by":"[username]", "distributed_by":"[username]", "start_time":"[YYY-MM_DDTHH:HH:MM:SS. sh "。心肌梗死:秒+ UTF]”、“finish_time”:[YYY-MM_DDTHH: HH: MM: SS。MI:Sec+UTF], "type": "distribute | delete_release_bundle_version", "release_bundle_name": "release-bundle", "release_bundle_version": "1.0.0", "status": "Not distributed | In progress | Completed | Failed", "distribution_rules": [{"site_name": "*", "city_name": "*", "country_codes":["*"]},…], "sites": [{"status": "Not distributed | In progress | Completed | Failed", "general_error": "<错误解释>","target_artifactory": {"service_id": "jfrt@01cc8hkzy1zgtc1wqw3zk41p2a", "name": "US_NY_Art01", "type": "edge"}, "total_files": 4, "total_bytes": 4403784, "distributed_bytes": 0, "distributed_files": 0, "general_error": "" ", "file_errors": [], "files_in_progress":[]},…},…]


通过发布包版本获取发布状态详细信息

描述:获取特定发布包版本的所有发行版的状态详细信息。

自:1.0
安全:仅限已验证的用户。用户必须具有发布包的读权限。
用法:获得api / v1 / release_bundle /:名称/:版本/分布
请求头信息:N/A

消耗:N/A

旋度的例子
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version/distribution"


响应状态码:

200 -成功

响应标头:N/A

生产:application / json


响应
[{"distribution_id": 188527534551203840, "distribution_friendly_id": 1, "type": "distribute | delete_release_bundle_version", "release_bundle_name": "release-bundle", "release_bundle_version": "1.0.0", "status": "Not distributed | In progress | Completed | Failed", "distribution_rules": [{"site_name": "*", "city_name": "*", "country_codes":["*"]},…], "sites": [{"status": "Not distributed | In progress | Completed | Failed", "general_error": "<错误解释>","target_artifactory": {"service_id": "jfrt@01cc8hkzy1zgtc1wqw3zk41p2a", "name": "US_NY_Art01", "type": "edge"}, "total_files": 4, "total_bytes": 4403784, "distributed_bytes": 0, "distributed_files": 0, "general_error": "" ", "file_errors": [], "files_in_progress":[]},…},…]


通过跟踪器Id获取分发状态详细信息

描述:获取特定发行版的状态详细信息。

自:1.0
安全:仅限已验证的用户。用户必须具有发布包的读权限。
用法:获得api / v1 / release_bundle /:名称/版本/分销/:tracker_id
请求头信息:N/A

消耗:N/A

旋度的例子
$ curl -X GET -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version/distribution/:tracker_id”

响应状态码:

200 -成功

响应标头:N/A

生产:application / json


响应
{"distribution_id": 188527534551203840, "distribution_friendly_id": 1, "created_by":"[username]", "distributed_by":"[username]", "start_time":"[YYY-MM_DDTHH:HH:MM:SS. sh "。心肌梗死:秒+ UTF]”、“finish_time”:[YYY-MM_DDTHH: HH: MM: SS。MI:Sec+UTF], "type": "distribute | delete_release_bundle_version", "release_bundle_name": "release-bundle", "release_bundle_version": "1.0.0", "status": "Not distributed | In progress | Completed | Failed", "distribution_rules": [{"site_name": "*", "city_name": "*", "country_codes":["*"]},…], "sites": [{"status": "Not distributed | In progress | Completed | Failed", "general_error": "<错误解释>","target_artifactory": {"service_id": "jfrt@01cc8hkzy1zgtc1wqw3zk41p2a", "name": "US_NY_Art01", "type": "edge"}, "total_files": 4, "total_bytes": 4403784, "distributed_bytes": 0, "distributed_files": 0, "general_error": "" ", "file_errors": [], "files_in_progress":[]},…]}

令牌管理

创建令牌

描述:为现有(非临时)用户创建身份验证令牌。

自:1.2
安全:Admin用于自身和他人(或具有Admin作用域),user仅用于自身
用法:POST / api / v1 /安全/令牌
请求头信息:N/A
消耗:应用程序/ x-www-form-urlencoded


旋度的例子
$ curl -X POST -u user:password http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/token -d 'username=user' -d 'refreshable=true' -d 'scope=applied-permissions%2Fadmin' -d "expires_in=123"


响应状态码:

201 -成功创建令牌

响应标头:N/A

生产:application / json


响应
{:“access_token eyJ2ZXIiOiIyIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYiLCJraWQiOiJ6WWFWQjVFRlpkOXlpbWtCNkZTbDAtSWFhMHRPWldLX293c1BTVTNTZmdNIn0.eyJzdWIiOiJsZW5vbiIsInNjcCI6ImFwcGxpZWQtcGVybWlzc2lvbnNcL2FkbWluIiwiYXVkIjoiamZkc0AwMWNoMDV0ajRuM3NzODBzNm4zdjIzMDdiOSIsImlzcyI6ImpmZHNAMDFjaDA1dGo0bjNzczgwczZuM3YyMzA3YjkiLCJleHAiOjE1MzAwOTk2MTgsImlhdCI6MTUzMDA5OTQ5NSwianRpIjoiYTQzM2YwZDAtNTQ5OC00YjI5LWE5ODctZjI3MTNkYmMyOTdmIn0。e7csehchqsojxz1jmhdvu_7yhljcy1jj51yqyxyifmxusexqzz78pi_7yhljcy1irc1vmthdv8_db2csanzydubcyttt77ootsvfqjdzsm_0aez - paij71lvgyjbflz2bje253tmglgweyfaqq4xxurlkcyn_jcgz2rcxr2c70jcxr2c70jif9fa0obaikvt - dgusngu83dnr - yf0xbsuctdu5k - jl5h3fmdb129awxe4_flldmk8iaarujsidlvexdlezval4nlrzcxa ", "refresh_token": "f96bda0c-ab50-4b7e-96f1-be8bd20605a3", "expires_in": 123, "scope": " appliedpermissions /admin", "token_type": "Bearer"}
类型 要求 默认值 描述
grant_type 字符串 没有 client_credentials 用于验证请求的授权类型。在这种情况下,唯一支持的值是“client_credentials”,如果不指定该参数,该值也是默认值。
用户名 字符串 是的
为其创建令牌的用户名。非管理员用户只能为自己创建令牌,因此他们必须指定自己的用户名。
范围 字符串 没有
要分配给令牌的范围,以空格分隔的范围令牌列表的形式提供。目前只有一个可能的作用域选项:
applied-permissions /管理
expires_in 没有 0

令牌有效的时间,以秒为单位。若要指定永不过期的令牌,请将其设置为零。

可刷新的 布尔 没有 如果为true,则此令牌是可刷新的,刷新令牌可用于在其过期后用新令牌替换它。

刷新令牌


描述:刷新现有(非瞬时)用户的身份验证令牌。
自:1.2
安全:Admin用于自身和他人(或具有Admin作用域),user仅用于自身a
用法:POST / api / v1 /安全/令牌
请求头信息:N/A
消耗:应用程序/ x-www-form-urlencoded


类型 要求 默认值 描述
grant_type 字符串 是的
用于验证请求的授权类型。在这种情况下,唯一支持的值是"refresh_token"。
access_token 字符串 是的
要刷新的访问令牌。
refresh_token 字符串 是的
需要刷新的访问令牌的刷新令牌。
expires_in 没有 0

令牌有效的时间,以秒为单位。若要指定永不过期的令牌,请将其设置为零。

可刷新的 布尔 没有 真正的 如果为true,则此令牌是可刷新的,刷新令牌可用于在其过期后用新令牌替换它。
旋度的例子
$ curl -X POST -u user:password http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/token -d "grant_type=refresh_token" -d "refresh_token=fgsg53t3g…" -d "access_token=gsfdgw35gt…"


响应状态码:

成功刷新令牌

响应标头:N/A

生产:application / json


响应
{:“access_token eyJ2ZXIiOiIyIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYiLCJraWQiOiJ6WWFWQjVFRlpkOXlpbWtCNkZTbDAtSWFhMHRPWldLX293c1BTVTNTZmdNIn0.eyJzdWIiOiJsZW5vbiIsInNjcCI6ImFwcGxpZWQtcGVybWlzc2lvbnNcL2FkbWluIiwiYXVkIjoiamZkc0AwMWNoMDV0ajRuM3NzODBzNm4zdjIzMDdiOSIsImlzcyI6ImpmZHNAMDFjaDA1dGo0bjNzczgwczZuM3YyMzA3YjkiLCJleHAiOjE1MzAwOTk2MTgsImlhdCI6MTUzMDA5OTQ5NSwianRpIjoiYTQzM2YwZDAtNTQ5OC00YjI5LWE5ODctZjI3MTNkYmMyOTdmIn0。e7csehchqsojxz1jmhdvu_7yhljcy1jj51yqyxyifmxusexqzz78pi_7yhljcy1irc1vmthdv8_db2csanzydubcyttt77ootsvfqjdzsm_0aez - paij71lvgyjbflz2bje253tmglgweyfaqq4xxurlkcyn_jcgz2rcxr2c70jcxr2c70jif9fa0obaikvt - dgusngu83dnr - yf0xbsuctdu5k - jl5h3fmdb129awxe4_flldmk8iaarujsidlvexdlezval4nlrzcxa ", "refresh_token": "f96bda0c-ab50-4b7e-96f1-be8bd20605a3", "expires_in": 123, "scope": " appliedpermissions /admin", "token_type": "Bearer"}


撤销令牌

描述:通过指定令牌或token_id来调用访问令牌

自:1.2
安全:管理
用法:POST / api / v1 /安全/令牌/撤销
请求头信息:N/A
消耗:应用程序/ x-www-form-urlencoded


旋度的例子
$ curl -u user:password -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/token/revoke" -d "token= fastt3…"

$ curl -u user:password -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/token/revoke" -d "token_id=7e0eec…"



类型 要求 描述
令牌 字符串 是(如果token_id为空) 要撤销的令牌。如果指定了token_id,则不能指定。
token_id
字符串 是(如果token为空) 要撤销令牌的ID。如果指定了令牌,则不能指定。

响应状态码:

成功撤销令牌
404 -未找到令牌


获取令牌信息

描述:获取特定用户的访问令牌列表。

自:1.2
安全:管理
用法:GET / api / v1 /安全/令牌


旋度的例子
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/token"


响应状态码:

200 -成功检索令牌列表
404 -未找到令牌
响应标头:N/A

生产:application / json


响应
{"tokens": [{"token_id": "58ae2b6f-085d-493e-b7c3-670d7700c034", "issuer": "jfds@01ch05tj4n3ss80s6n3v2307b9", "subject": "admin", "issued_at": 1530088236, "expiry": 2476168236, "refreshable": false}, {"token_id": "5c0399f9-de42-4cc8-bbd6-ba04a8b861a7", "issuer": "jfds@01ch05tj4n3ss80s6n3v2307b9", "subject": "lenon", "issued_at": 1530089226, "refreshable": true}]}



权限管理

权限操作类型:

d

删除

x

分发

按名称创建/更新目标权限

可以通过指定唯一的权限名称来创建和覆盖权限。

目标权限用于定义与分发边缘交互的权限,例如分发和删除发布包。

目的权限允许的操作:x, d。

将权限应用于与传递的通配符表达式匹配的信息的分布边。

描述:根据权限范围为用户和组创建/更新权限。响应体将包含创建/更新的权限。

自:2.0
安全:管理。
用法:把/ api / v1 /安全/权限/:名字
请求头信息:N/A
消耗:application / json

旋度的例子
$ curl -X PUT -u user:password -H "Content-Type: application/json" "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/permissions/:name" -T permission.json
permission.json
{“distribution_destinations”:[{”:域名”:“*”,“city_name”:“*”,“country_code ": [ "*" ] } ], " 名称”:“permission-name”、“resource_type”:“目的地”、“校长”:{"用户":{“匿名”:[x]},“团体”:{“读者”:[x]}}}


响应状态码:
200 -设置权限成功
响应标头:N/A
生产:application / json

响应
{“distribution_destinations”:[{”:域名”:“*”,“city_name”:“*”,“country_code ": [ "*" ] } ], " 名称”:“permission-name”、“resource_type”:“目的地”、“校长”:{"用户":{" user1 ": [x]},“团体”:{“group1”:[x]}}}


获取所有权限

描述:获得所有权限。

自:2.0
安全:管理。

用法:/ api / v1 /安全/权限
请求头信息:N/A
消耗:application / json


旋度的例子
$ curl -X GET -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/permissions”


响应状态码:

200 -成功

响应标头:N/A

生产:application / json


响应
[{“distribution_destinations”:[{”:域名”:“*”,“city_name”:“*”,“country_code ": [ "*" ] } ], " 名称”:“permission-name”、“resource_type”:“目的地”、“校长”:{"用户":{“匿名”:[x]},“团体”:{“读者”:[" x " ] } } } ]

按名称获取许可

描述:按名称获取权限信息。

自:2.0
安全:管理。
用法:/ api / v1 /安全/权限/:名字
请求头信息:N/A
消耗:N/A


旋度的例子
$ curl -X GET -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/permissions/:name”

响应状态码:

200 -成功
404 -未找到权限

响应标头:N/A

生产:application / json


响应
{“distribution_destinations”:[{”:域名”:“*”,“city_name”:“*”,“country_code ": [ "*" ] } ], " 名称”:“permission-name”、“resource_type”:“目的地”、“校长”:{"用户":{“匿名”:[x]},“团体”:{“读者”:[x]}}}

按名称删除权限

描述:根据权限id删除权限

自:1.0
安全:管理。
用法:删除/ api / v1 /安全/权限/:名称
请求头信息:N/A
消耗:N/A


旋度的例子
$ curl -X DELETE -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/permissions/:name”

响应状态码:

204 -成功删除权限
404 -未找到权限

响应标头:N/A

生产:N/A


支持

创建支持包

描述:创建支持包
自:1.6
安全:管理员只
用法:POST / api / v1 /系统/支持/包
请求头信息:N/A
消耗:application / json
生产:application / json

旋度的例子
$ curl -X POST -u user:password -H Content-Type: application/json" http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/support/bundle" -T create_support_bundle.json
create_support_bundle.json
{"parameters": {"configuration": true|false, "logs": {"include": true|false, "start_date":基于ISO8601模式的日期:YYYY-MM-DD, "end_date":基于ISO8601模式的日期:YYYY-MM-DD,}, "system": true|false, "thread_dump": {"count": 1, "interval":0}}, "description": "" ", "name": ""}
类型 要求 默认值 描述
参数

对象

没有

N/A

1.6

支持包参数

parameters.configuration

布尔

没有

真正的

1.6

收集配置文件

parameters.logs

对象

没有

N/A

1.6

收集所有系统日志,如果不指定此字段,support bundle将收集前一天到今天的日志。

parameters.logs.include

布尔

没有

真正的

1.6

收集系统日志。

parameters.logs.start_date

字符串

没有

end_date的前一天

1.6

获取日志的起始日期
parameters.logs.end_date
字符串 没有 今天 1.6 获取日志的结束日期
系统

布尔

没有

真正的

1.6

关于系统的信息,包括存储、系统属性、cpu和JVM信息
thread_dump

对象

没有

N/A

1.6

为所有正在运行的线程创建线程转储
thread_dump.count

整数

没有

1

1.6

要收集的线程转储数


thread_dump.interval

整数

没有

0


1.6

收集线程转储时间间隔(以毫秒为单位)


描述

字符串

没有

N/A

1.6

支持包说明


名字
字符串 没有 N/A 1.6 支持包名称


响应状态码:

200 -成功创建支持包

响应标头:N/A
生产:application / json

response.json
{"id": 20181230145474-53666747, "artifactory": {"service_id": "jfds@...", "bundle_url": http://:/artifactory/support-bundles//jfds/}}

创建特定的支持包

描述:创建一个新的支持包并为其分配一个特定的ID
自:1.6
安全:管理员只
用法:把/ api / v1 /系统/支持/包/:bundle_id
请求头信息:N/A
消耗:application / json
生产:application / json

旋度的例子
$ curl -X PUT -u user:password -H Content-Type: application/json" http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/support/bundle/:bundle_id" -T create_support_bundle.json
create_support_bundle.json
{"parameters": {"configuration": true|false, "logs": {"include": true|false, "start_date":基于ISO8601模式的日期:YYYY-MM-DD, "end_date":基于ISO8601模式的日期:YYYY-MM-DD,}, "system": true|false, "thread_dump": {"count": 1, "interval":0}}, "description": "" ", "name": ""}
类型 要求 默认值 描述
参数

对象

没有

N/A

1.6

支持包参数

parameters.configuration

布尔

没有

真正的

1.6

收集配置文件

parameters.logs

对象

没有

N/A

1.6

收集所有系统日志,如果不指定此字段,support bundle将收集前一天到今天的日志。

parameters.logs.include

布尔

没有

真正的

1.6

收集系统日志。

parameters.logs.start_date

字符串

没有

end_date的前一天

1.6

获取日志的起始日期
parameters.logs.end_date
字符串 没有 今天 1.6 获取日志的结束日期
系统

布尔

没有

真正的

1.6

关于系统的信息,包括存储、系统属性、cpu和JVM信息
thread_dump

对象

没有

N/A

1.6

为所有正在运行的线程创建线程转储
thread_dump.count

整数

没有

1

1.6

要收集的线程转储数


thread_dump.interval

整数

没有

0


1.6

收集线程转储时间间隔(以毫秒为单位)


描述

字符串

没有

N/A

1.6

支持包说明


名字
字符串 没有 N/A 1.6 支持包名称

响应状态码:

200 -成功创建支持包
在Artifactory中不存在相应的存储库。支持包将被持久化到每个分发边缘的文件系统中。
找不到人工身份验证提供程序
响应标头:N/A
生产:application / json

response.json
{"id": 20181230145474-53666747, "artifactory": {"service_id": "jfds@...", "bundle_url": http://:/artifactory/support-bundles//jfds/}}

获取支持包信息

描述:获取支持包信息
自:1.6
安全:仅限管理员
用法:GET / api / v1 /系统/支持/包/:bundle_id
请求头信息:N/A
消耗:N/A

旋度的例子
$ curl -X GET -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/support/bundle/:bundle_id”

响应状态码:

成功获取支持包信息
没有找到支持包
响应标头:N/A
生产:application / json

info_support_bundle.json
{"parameters": {"configuration": true, "logs": {"include": true, "start_date": 2019-01-20, "end_date": 2019-01-21}, "system": true, "thread_dump": {"count": 2, "interval": 100}}, "description": "" "name": "" artifactory": {"service_id": "" ", "bundle_url": http://:/artifactory/support-bundles//jfds/}}, status: success, created: 2019-02-02,}


获取支持包

描述:下载支持包
自:1.6
安全:管理员只
用法:GET / api / v1 /系统/支持/包/:bundle_id /存档
请求头信息:N/A
消耗:N/A

旋度的例子
$ curl -X GET -u user:password "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/support/bundle/:bundle_id/archive"——output support_bundle.zip

响应状态码:

200 -成功下载支持包
没有找到支持包
响应标头:N/A

response.json
200 OK内容类型:application/zip


删除支持包

描述:删除支持包
自:1.6
安全:管理员只
用法:删除/ api / v1 /系统/支持/包/:bundle_id
请求头信息:N/A
消耗:N/A

旋度的例子
$ curl -X DELETE -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/support/bundle/:bundle_id”

响应状态码:

204 -成功删除支持包
没有找到支持包
响应标头:N/A

response.json
204无内容


列表支持包

描述:
获取所有支持包的列表
自:1.6
安全:管理员只
用法:GET / api / v1 /系统/支持/包
请求头信息:N/A
消耗:N/A

旋度的例子
$ curl -X GET -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/support/bundles”

响应状态码:

200 -成功
响应标头:N/A

response.json
{"count": 2, "bundles": [{id: 20181230145474-53666747,描述:"",名称:"",创建:2018-12-30,},....。]}

维护

生成停止所有任务令牌

描述:生成执行令牌以停止所有分发任务。这把钥匙是和停止所有任务REST API。
自:1.8.1
安全:管理员只
用法:GET / api / v1 /维护/ generate_token / stop_all
请求头信息:N/A
消耗:application / json
生产:application / json

请求示例
$ curl -XGET -u admin:密码http://localhost:8080/api/v1/maintenance/generate_token/stop_all
response.json
{"token":"JEv4CnrZNhmgtkRV9aKmGsrozGEoaoBs3okv9SFusdhR3hUKiWdKwAhoeP1SLEy8hFZqFhE"}


响应状态码:

200 -成功


停止所有任务

描述:停止所有正在运行的分发任务。需要一个执行令牌
自:1.8.1
安全:仅限管理员
用法:POST / api / v1 /维护/执行/ stop_all
请求头信息:N/A
消耗:内容类型:文本/平原
生产: application / json

请求示例
$ curl -XPOST -H "Content-Type: text/plain" -u admin:password "http://localhost:8080/api/v1/maintenance/execute/stop_all?"——data-raw "token…"
类型 要求 默认值 描述
dryRun

查询参数

是的

真正的

1.8.1

如果为true,则只进行解析和验证。

response.json
{"trackers_db_info": {"affected_edge_tracker_artifacts": 8, "affected_edge_trackers": 1, "affected_trackers": 1}, "tasks_queue_flushed": true}

响应状态码:

202 -成功中止所有分发任务

响应标头:N/A


x光

触发x射线发布包版本索引

描述:触发发布包版本的x射线索引。
自:2.0.0
安全:仅限已验证的用户。用户必须匹配发布包写权限
用法:POST /api / v1 / release_bundle /:名称/版本/ trigger_xray_scan
请求头信息:N/A
消耗:N/A

旋度的例子
$ curl -X POST -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version/trigger_xray_scan”

响应状态码:

200 -成功


进出口

获取源人工id

描述:列出包含发布包的工件id。在将发布包元数据导出到相关的分发服务之前,用作预备步骤。
注:为了支持JFrog平台中引入的Artifactory(从7.x开始)和Distribution(从2.4开始)之间的一对一配对比率,您需要根据该命令生成的列表将Distribution元数据迁移到Distribution服务。有关更多信息,请参见分布REST API
自:2.4
安全:需要admin用户
用法:GET / api / v1 /系统/迁移/ import_export / source_artifactories
消耗:application / json
生产:application / json
示例用法:

$ curl -X GET -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/migration/import_export/source_artifactories”

导出发行版本包元数据

描述:将发布服务上的发布包元数据导出到export.zip文件
注:为了支持JFrog平台中引入的Artifactory To Distribution一对一的配对比例,您需要根据与其相关的Distribution服务相关联的,将Distribution Release Bundle元数据迁移到其相关的Distribution服务中。
自:
2.4
安全:需要admin用户
用法:POST / api / v1 /系统/迁移/出口/ < Artifactory_instance_ID >- o export.zip
生产应用程序/邮政编码

示例用法:

$ curl -X POST -u用户:密码http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/migration/export/DEV_Art01 -o export.zip

样品反应:

请举例说明

导入发行版本包元数据

描述:将Release Bundles从导出的zip文件导入到新创建的Distribution服务中。有关更多信息,请参见分布REST API
注:为了支持Artifactory(从7.x开始)和Distribution(从2.4开始)之间的一对一配对,运行此命令将Release Bundle Metadata从核心Distribution服务导入到新创建的Distribution服务中。有关更多信息,请参见分布REST API
自:2.4
安全:需要admin用户
用法:POST / api / v1 /系统/迁移/导入
消耗:多部分/格式

示例用法:

$ curl -X POST -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/migration/import”



错误响应

状态码 原因 建议的行动
400 无效的请求参数(报头/正文) 将需求与规格进行比较
401 端点需要身份验证 使用身份验证凭证重复请求
403 终端权限要求不满足 响应将包括必要的权限
500 处理请求时出现意外错误 检查配电日志
  • 没有标签
版权所有©2022 JFrog Ltd.