跳到元数据的末尾
进入元数据的开始

使用

JFrog容器注册REST API端点可以以任何标准方式调用RESTful API。本节以cURL为例介绍JFrog Container Registry REST API的使用方法。

使用和配置cURL

你可以下载cURL在这里。学习如何使用和配置cURL在这里

身份验证

JFrog Container Registry的REST API支持以下形式的身份验证:

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

  • 使用专用标头(X-JFrog-Art-Api)与你的API密钥。
  • 使用一个访问令牌而不是基本身份验证的密码。
  • 使用一个访问令牌作为授权标头中的记名令牌授权:持票人)和存取令牌。

使用JFrog CLI

JFrog CLI是一个紧凑而智能的客户端,提供了一个简单的界面来自动访问JFrog容器注册表。作为REST API的包装器,它提供了一种简化自动化脚本的方法,使它们更易于阅读和维护,并行上传和下载、校验和优化和通配符/正则表达式等特性使您的脚本更高效和可靠。请注意,通过REST API可用的一些函数也可以通过JFrog CLI使用,您应该考虑哪种方法最能满足您的需求。

有关JFrog CLI的下载、安装和使用,请参考JFrog CLI用户指南

示例-部署/下载一个工件

下面的示例演示如何调用部署的工件REST API。

  • 您正在从unix命令行使用cURL,并且目前正在从Home(~)目录用户的'myUser
  • 您希望部署文件'myNewFile.txt',它位于您的Desktop目录中,('~ /桌面/ myNewFile.txt')
  • 您已经在本地系统上运行了JFrog容器注册表端口8081
  • 您希望将工件部署到我的存储库'存储库,在我的/新/工件/目录/'文件夹结构,并希望将文件存储为'file.txt
  • 您已经在JFrog容器注册表中配置了一个名为“myUser”的用户,密码为“myP455w0rd!”,并且该用户具有部署工件的权限
  • 你的API密钥是'六边形ABcdEF
  • 在可能的情况下,使用JFrog CLI演示相同的示例

来部署文件用户名和密码对于身份验证,您将使用以下命令:

使用cURL和REST API
curl -u myUser:myP455w0rd!-X PUT "http://localhost:8081/artifactory/my-repository/my/new/artifact/directory/file.txt" -T Desktop/myNewFile.txt
使用JFrog CLI
jfrog rt u file.txt my-repository/my/new/artifact/directory/——user=myUser——password=myP455w0rd!

要下载文件,请使用用户名和密码对于身份验证,您将使用以下命令:

使用cURL和REST API
curl -u myUser:myP455w0rd!“http://localhost: 8081 / artifactory /我的存储库/我/新/工件/目录/ file.txt”
使用JFrog CLI
jfrog rt dl my-repository/my/new/artifact/directory/file.txt——user=myUser——password=myP455w0rd!


来部署文件API密匙对于基本身份验证,您将使用以下命令:

使用cURL和REST API
curl -u myUser:ABcdEF -X PUT "http://localhost:8081/artifactory/my-repository/my/new/artifact/directory/file.txt" -T Desktop/myNewFile.txt
使用JFrog CLI
——apiKey=ABcdEF . jfrog rt u file.txt my-repository/my/new/artifact/directory/——apiKey=ABcdEF .txt

要下载该文件,请使用API密匙对于基本身份验证,您将使用以下命令:

使用cURL和REST API
myUser:ABcdEF "http://localhost:8081/artifactory/my-repository/my/new/artifact/directory/file.txt"
使用JFrog CLI
jfrog rt dl my-repository/my/new/artifact/directory/file.txt——apiKey=ABcdEF


来部署文件API密匙在头文件中,你可以使用以下命令:

使用cURL和REST API
curl -H "X-JFrog-Art-Api:ABcdEF" -X PUT "http://localhost:8081/artifactory/my-repository/my/new/artifact/directory/file.txt" -T Desktop/myNewFile.txt


来部署文件访问令牌对于基本身份验证,您将使用以下命令:

使用带有访问令牌的cURL
curl -u myUser: -X PUT "http://localhost:8081/artifactory/my-repository/my/new/artifact/directory/file.txt" -T Desktop/myNewFile.txt


来部署文件访问令牌在头文件中,你可以使用以下命令:

使用带有访问令牌的cURL
curl -H "Authorization: holder " -X PUT "http://localhost:8081/artifactory/my-repository/my/new/artifact/directory/file.txt" -T Desktop/myNewFile.txt .

使用JFrog容器注册表云

JFrog容器注册表云提供了与预置安装一样广泛的自动化功能和能力,包括身份验证、使用JFrog CLI和REST API端点。

作为一个云服务,URL不同于内部安装,REST API端点可以通过以下地址到达:

https:// < Server Name > .jfrog。io / <服务器名称>

例子

下面的代码段也同样适用例子上面描述的JFrog Container Registry Cloud实例名为“myjcrsaas”(而不是一个on-prem安装)。

来部署文件用户名和密码对于身份验证,您将使用以下命令:

在JFrog Container Registry SaaS中使用cURL和REST API
curl -u myUser:myP455w0rd!-X PUT "https://myjcrsaas.jfrog.io/myjcrsaas/helm-local/server-1.0.0。-T server-1.0.0.tgz
使用JFrog CLI
jfrog rt u file.txt my-repository/my/new/artifact/directory/——user=myUser——password=myP455w0rd!

注意,使用JFrog CLI与使用JFrog容器注册表云实例是一样的。你只需要配置JFrog命令行使用实例的正确URL。

其他资源2022世界杯阿根廷预选赛赛程

下面的部分提供了JFrog容器注册中心公开的REST资源的全面列表。2022世界杯阿根廷预选赛赛程

有关错误处理的详细信息,请参阅错误响应在下面。

REST资源的使用受到适用于2022世界杯阿根廷预选赛赛程每个单独资源的安全限制。

构建

所有构建

描述:提供关于所有构建的信息
安全:需要特权用户(可以是匿名用户)。需要读权限Build或基本的读
使用: GET /api/build
生产: application/json (application/vnd.org.jfrog.build.Builds + json)
样例输出

GET /api/build {"uri": "http://localhost:8081/artifactory/api/build" "builds": [{"uri": "/my-build", "lastStarted": ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)}, {"uri": "/jackrabbit", "lastStarted": ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)}]}



建立运行

描述:构建运行
安全:需要特权用户(可以是匿名用户)。需要读权限对于构建或基本的读
使用: GET /api/build/{buildName}
生产: application/json (application/vnd.org.jfrog.build.BuildsByName + json)
样例输出

GET /api/build/my-build {"uri": "http://localhost:8081/artifactory/api/build/my-build" "buildsNumbers": [{"uri": "/51", "started": ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)}, {"uri": "/52", "started": ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)}]}

构建上传

描述:上传构建
安全:需要特权用户。需要部署的许可对于构建,和删除权限用于覆盖现有的构建信息工件。
注:所有构建模块都必须具有build.namebuild.number属性设置以及正确的SHA1和MD5,以便在构建信息中正确链接。
使用: PUT /api/build/ -H "Content-Type: application/json"——upload-file build.json
消耗: application/json (application/vnd.org.jfrog.build.BuildsByName+json)
例子:curl -X PUT "http://localhost:8081/artifactory/api/build" -H "Content-Type: application/json"——upload-file build.json
样本格式:

{"properties":{/*从CI服务器收集的环境变量和属性。“buildInfo.env.”前缀被添加到环境变量和构建相关属性中。对于系统变量,没有前缀。*/ "buildInfo.env.JAVA_HOME": "",…} +“版本”:“1.0.1”/ /构建信息模式版本+“名称”:“My-build-name”/ /构建名称+“数量”:“28”/ /构建数字——“类型”:“通用”,/ /构建类型(值目前支持:MAVEN, GRADLE,蚂蚁,常春藤和通用)——“buildAgent”:{/ /构建工具信息——“名称”:“通用”,/ /构建工具类型——“版本”:“1.26.1”/ /构建工具版本},-“代理”:{/ / CI服务器信息——“名称”:“詹金斯”/ / CI服务器类型——“版本”:"1.554.2" // CI server version}, + "started": "2014-09-30T12:00:19.893+0300", //编译开始时间,格式为yyyy-MM-dd 'HH:mm:ss。SSSZ——“artifactoryPluginVersion”:“技术”,——“durationMillis”:9762年,/ /构建持续时间以毫秒为单位——“artifactoryPrincipal”:“詹姆斯”,/ / Artifactory本金(Artifactory用户用于部署)——“url”:" http://my-ci-server/jenkins/job/My-project-name/28/ ", / / CI服务器url -“vcsRevision”:“e4ab2e493afd369ae7bdc90d69c912e8346a3463”/ / VCS修订——“vcsUrl”:“https://github.com/github-user/my-project.git”,/ / VCS url -“buildRetention”:{//构建保留信息- "deleteBuildArtifacts": true, //自动删除存储在Artifactory中的构建工件(true/false) - "count": 100, //存储在Artifactory中的最大构建数量。- "minimumBuildDate": 1407345768020, //存储在Artifactory中的最早构建日期- "buildNumbersNotToBeDiscarded":[] //不应该从Artifactory中删除的构建号列表},/*构建模块列表*/ - "modules": [{- "properties": {- "docker.image. image. "标记":"10.1.20.94:8080/docker-local/alpine:latest", - "docker.image. image. "Id ": "sha256: " 055936d3920576da37aa9bc460d70c5f212028bda1c08c0879aedf03d7a66ea1"}, - " Id ": "alpine:latest", - "artifacts": [{- "sha1": "38b5c4465b61e1ad87a82a7ac83334bc34d26752", - "sha256": "bf1684a6e3676389ec861c602e97f27b03f14178e5bc3f70dce198f9f160cce9", - "md5": "35e76f0617ee20d842c843f2a0164ae6", - "name": "manifest. "json" }, { - "sha1": "4a4a284e964dc39d47de68281874e71f28cd71c9", - "sha256": "055936d3920576da37aa9bc460d70c5f212028bda1c08c0879aedf03d7a66ea1", - "md5": "6a85339254044c88a0605e717c1856a0", - "name": "sha256__055936d3920576da37aa9bc460d70c5f212028bda1c08c0879aedf03d7a66ea1" }, { - "sha1": "8e05dbc2b744ce6710aef60759b82b657a0c46a0", - "sha256": "e7c96db7181be991f19a9fb6975cdbbd73c65f4a2681348e63a141a2192a5f10", - "md5": "89d694074fb2763c3b2a8668af61466c", - "name": "sha256__e7c96db7181be991f19a9fb6975cdbbd73c65f4a2681348e63a141a2192a5f10" }] }], /* List of issues related to the build */ "issues" : { "tracker" : { - "name" : "JIRA", - "version" : "6.0.1" }, - "aggregateBuildIssues" : true, //whether or not there are issues that already appeared in previous builds - "aggregationBuildStatus" : "Released", "affectedIssues" : [ { - "key" : "RTFACT-1234", - "url" : "//www.si-fil.com/jira/browse/RTFACT-1234", - "summary" : "Description of the relevant issue", - "aggregated" : false //whether or not this specific issue already appeared in previous builds }, { - "key" : "RTFACT-5469", - "url" : "//www.si-fil.com/jira/browse/RTFACT-5678", - "summary" : "Description of the relevant issue", - "aggregated" : true } ] }, } }

+ =强制性;- =可选


建立信息

描述:构建信息
安全:需要具有部署权限的特权用户。需要读权限用于构建。
使用: GET /api/build/{buildName}/{buildNumber}
生产: application/json (application/vnd.org.jfrog.build.BuildInfo+json)
样本输出

GET /api/build/my-build/51 {"uri": "http://localhost:8081/artifactory/api/build/my-build/51" "buildInfo":{…}}



构建差异

描述:将构建工件/依赖项/环境与旧的构建进行比较,以查看有什么更改(添加了新工件,删除了旧依赖项等)。
安全:需要特权用户。需要读权限用于构建。
使用: GET /api/build/{buildName}/{buildNumber}?diff = {OlderbuildNumber}
生产: application/json (application/vnd.org.jfrog.build.BuildsDiff+json)
样本输出


GET / api /构建/构建/ 51吗?diff = 50{“工件”:{“更新”:[],“不变”:[],“删除”:[],“新 ": [] }, " 依赖关系”:{“更新”:[],“不变”:[],“删除”:[],“新 ": [] }, " 属性”:{“更新”:[],“不变”:[],“删除”:[],“新”:[]}}

提升Docker形象

描述:将Docker映像从一个存储库提升到另一个存储库。仅本地支持。
安全:需要特权用户
使用: POST api/docker//v2/promote . txt
消耗: application / json

{"targetRepo": "", //移动或复制目标存储库"dockerRepository": "", //提升的docker存储库名称"targetDockerRepository": "" //一个可选的docker存储库名称,如果为空,将使用与'dockerRepository'相同的名称"tag": "", //一个可选的标签名称来提升,如果为空-整个docker存储库将被提升。v4.10提供。"targetTag": "", //一个可选的目标标签,用于在提升后分配图像,如果为空-将使用相同的标签"copy": false //一个可选值,用于设置是否复制而不是移动。默认值:false}

生产:应用程序/文本
示例用法:

POST api/docker/docker-local/v2/promote {"targetRepo": "docker-prod", "dockerRepository": "jfrog/ubuntu"}
POST /api/build/distribute/my-build/1 {"targetRepo": "dist-repo-jfrog-artifactory", "sourceRepos": [" yam -local"]}

控制版本保留

描述:指定生成信息的保留参数

安全:需要特权用户。需要删除权限用于构建。
使用: POST /api/build/retention/{buildName}?Async =
消耗: application / json


{"deleteBuildArtifacts": , //当为true时,自动删除存储在JFrog容器注册表中的构建工件"count": , //存储在JFrog容器注册表中的构建的最大数量。"minimumBuildDate": , //存储在JFrog容器注册表中的最早构建日期- ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ)"buildNumbersNotToBeDiscarded":[] //不应该从JFrog容器注册表中删除的构建号列表}

样本使用

POST / api /建立/保持/ myBuild吗?async=true {" deletebuilddartifacts ": true, "count": 100, // "minimumBuildDate": 1407345768020, "buildNumbersNotToBeDiscarded": [5,9]}

文物和存储

文件夹信息

描述:文件夹信息
对于虚拟使用,虚拟存储库返回统一的子库。由本地、本地缓存和虚拟存储库支持。
安全:需要一个特权用户(可以是匿名的)
使用: GET /api/storage/{repoKey}/{folder-path}
生产: application/json (application/vnd.org.jfrog.artifactory.storage.FolderInfo+json)
样本输出

GET /api/storage/libs-release-local/org/acme {"uri": "http://localhost:8081/artifactory/api/storage/libs-release-local/org/acme", "repo": "libs-release-local", "path": "/org/acme", "created": ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ), "createdBy": " userery ", "lastModified": ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ), "modifiedBy": "userX", "lastUpdated": ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ), "children": [{"uri": "/child1", "folder": "true"},{"uri": "/child2", "folder": "false"}]}

文件信息

描述:文件信息
对于虚拟使用,虚拟存储库返回已解析的文件。由本地、本地缓存和虚拟存储库支持
安全:需要一个特权用户(可以是匿名的)
使用: GET /api/storage/{repoKey}/{filePath}
生产: application/json (application/vnd.org.jfrog.artifactory.storage.FileInfo+json)
样本输出

GET / api /存储/ generic-remote / installer.zip{“回购”:“generic-remote-cache”、“路径”:“/ installer.zip”,“创建”:“2019 - 11 - 12 - t11:52:58.328 + 02:00”、“createdBy”:“admin”、“lastModified”:“2019 - 11 - 12 - t11:52:15.000 + 02:00”、“modifiedBy”:“admin”、“lastupdate”:“2019 - 11 - 12 - t11:52:58.331 + 02:00”、“downloadUri”:“http://localhost: 8080 / artifactory / generic-remote-cache / installer.zip”、“remoteUrl”:“http://localhost: 8081 / artifactory / generic-local / installer.zip”、“mimeType”:"application/zip", "size": "53543", "校验和":{"sha1": "eba225b84618778988ea7d226ad039fdf2d1745f", "md5": "5aa9da47c2632177247011e9b851c26a"}, " originalchecksum ": {"sha1": "eba225b84618778988ea7d226ad039fdf2d1745f", "md5": "5aa9da47c2632177247011e9b851c26a", "sha256": " 011d4a4af5a5a81bf96f3e549281e7aafea5d3711c35dcb "}, "uri":“http://localhost: 8080 / artifactory / api /存储/ generic-remote-cache / installer.zip”}

获取存储汇总信息

描述:返回关于二进制文件、文件存储和存储库的存储摘要信息
安全:需要特权用户(仅管理员)
使用: GET /api/storageinfo
生产: application / json
样本输出


获得/ api / storageinfo
“binariesSummary” : {
“binariesCount” “125726”
“binariesSize” “3.48 GB”
“artifactsSize” “59.77 GB”
“优化” “5.82%”
“itemsCount” “2176580”
“artifactsCount” “2084408”
},
“fileStoreSummary” : {
“storageType” “文件系统”
“storageDirectory” “/ home /…/ artifactory-jcr /数据/ filestore”
“totalSpace” “204.28 GB”
“usedSpace” “32.22 gb(15.77%)”
“freeSpace” "172.06 gb (84.23%)"
},
“repositoriesSummaryList” :【
“repoKey” “docker-virtual”
“repoType” “虚拟”
“foldersCount” 0
“filesCount” 0
“usedSpace” “0字节”
“itemsCount” 0
“packageType” “码头工人”
“比例” “0%”
},
“repoKey” “回购”
“repoType” “虚拟”
“foldersCount” 0
“filesCount” 0
“usedSpace” “0字节”
“itemsCount” 0
“packageType” “通用的”
“比例” “0%”
},


“repoKey” “总”
“repoType” “NA”
“foldersCount” 92172
“filesCount” 2084408
“usedSpace” “59.77 GB”
“itemsCount” 2176580



文件数据

描述:项目统计记录一个项目被下载的次数,最后下载日期和最后下载者。由本地和本地缓存的存储库支持。
安全:
需要读权限
用法:
GET / api /存储/ {repoKey} / {item-path} ?统计数据
生产:application / json(应用程序/ vnd.org.jfrog.storage.StatsInfo + json)
样例输出:

GET / api /存储/ libs-release-local / org/acme/foo/1.0/foo-1.0.jar吗?统计数据{"uri": "http://localhost:8081/artifactory/api/storage/libs-release-local/org/acme/foo/1.0/foo-1.0.jar", "lastDownloaded": Timestamp (ms), "downloadCount": 1337, "lastDownloadedBy": "user1" }

项属性

描述:项属性。可选地只返回所请求的属性。
安全:需要一个特权用户(可以是匿名的)
使用: GET /api/storage/{repoKey}/{itemPath}?属性(= x [y]]
生产: application/json (application/vnd.org.jfrog.artifactory.storage.ItemProperties+json)
样本输出

GET / api /存储/ libs-release-local / org/acme吗?属性\ [= x (y) \]{“uri”:“http://localhost: 8081 / artifactory / api /存储/ libs-release-local / org/acme”“属性”:{“p1”:[“v1”、“v2”、“v3”),“p2”:[“v4”、“v5”,“v6”]}}


设置项SHA256校验和

描述:计算工件的SHA256校验和,并将其附加为属性(键为“SHA256”)。如果工件是一个文件夹,那么递归地计算文件夹中每个项目的SHA256,并将属性附加到每个项目。
安全:需要admin用户
消耗:application / json
用法:POST /api/checksum/sha256 -H "Content-Type: application/json"
示例用法:

POST /api/checksum/sha256 -H "Content-Type: application/json" {"repoKey":"ext-snapshot-local", "path":"artifactory-powerpack-3.9.3/bin/"}

检索构件

描述:从指定的目的地检索工件。
你也可以使用基于属性的决议作为检索文物的一部分。
安全:要求用户具有“读”权限(可以是匿名)
使用: GET /repo-key/path/to/artifact.ext
示例使用

得到http://localhost: 8081 / artifactory / libs-release-local / ch / qos / logback / logback-classic / 0.9.9 / logback-classic-0.9.9.jar

跟踪工件检索

描述:模拟来自指定位置的工件检索请求,并返回关于解析过程的详细输出。
这个API对于调试工件检索问题很有用。
安全:应用于请求用户的标准工件检索。
使用: GET /repo-key/path/to/artifact.ext?跟踪
生产:文本/平原
样本输出

GET http://localhost:8081/artifactory/libs-release-local/jmock/jmock/1.0.1/jmock-1.0.1.jar?trace请求ID: 511c808f6 Repo路径ID: lib -release-local:jmock/jmock/1.0.1/jmock-1.0.1.jar方法名称:GET用户:解析器时间:2012-05-06T10:49:09.528+03:00线程:pool-1-thread-31步骤:2012-05-06T10:49:09.588+03:00 request source = 0:0:0:0:0:0:0:1, Last modified = 01-01-70 01:59:59 IST, If modified since = -1, Thread name = pool-1- Thread 31 2012-05-06T10:49:09.697+03:00检索信息2012-05-06T10:49:09.723+03:00 Identified resource as a file…2012-05-06T10:49:09.807+03:00请求成功

档案入口下载

描述:从指定的归档目的地检索归档资源。
安全:要求用户具有“读”权限(可以是匿名)
使用GET /repo-key/path/to/artifact.jar!/道路/ /归档/资源(注意!“!'should be in between the archive file name and the archive entry path, and will not work without the '/' after the '!'.)

样本输出

http://localhost: 8081 / artifactory / repo1-cache / commons lang / commons lang / 2.6 / commons-lang-2.6.jar ! / meta - inf / LICENSE.txt

创建目录

描述:在指定的目标目录下创建新目录。
笔记:你也可以附加属性作为创建目录的一部分。
安全:需要具有“部署”权限的用户(可以是匿名的)
使用: PUT /repo-key/path/to/directory/
生产: application/json (application/vnd.org.jfrog.artifactory.storage.ItemCreated+json)
示例使用

PUT /lib -release-local/path/to/directory/ {"uri": "http://localhost:8081/artifactory/libs-release-local/path/to/directory", "repo": "lib -release-local", "path": "/path/to/directory", "created": ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ), "createdBy": "userY", "children": []}

部署的工件

描述:将工件部署到指定的目标。
笔记:你也可以附加属性作为部署工件的一部分。
安全:需要具有“部署”权限的用户(可以是匿名的)
使用: PUT /repo-key/path/to/artifact.ext
生产: application/json (application/vnd.org.jfrog.artifactory.storage.ItemCreated+json)
示例使用

把/ libs-release-local /我/ jar / 1.0 / jar-1.0.jar{“uri”:“http://localhost: 8081 / artifactory / libs-release-local /我/ jar / 1.0 / jar-1.0.jar”、“downloadUri”:“http://localhost: 8081 / artifactory / libs-release-local /我/ jar / 1.0 / jar-1.0.jar”、“回购”:“libs-release-local”、“路径”:“/我的/ jar / 1.0 / jar-1.0.jar”,“创建”:ISO8601 (yyyy-MM-dd没有'HH: mm: ss.SSSZ),“createdBy”:“userY”、“大小”:“1024”,“mimeType”:/ /字节“应用程序/ java archive”、“校验和”:{“md5”:字符串,“sha1”:字符串}," originalchecksum ":{"md5":字符串,"sha1":字符串}}

通过校验和部署工件

描述:通过检查JFrog Container Registry中是否已经存在工件内容,将工件部署到指定的目标。
如果JFrog容器注册表已经包含了一个具有相同校验和的用户可读工件,那么工件内容将被复制到新的位置,并返回一个响应,而不需要内容传输。
否则,将返回404错误,以指示为了部署工件,需要上传内容。
笔记:你也可以附加属性作为部署工件的一部分。
安全:需要具有“部署”权限的用户(可以是匿名的)
使用: PUT /repo-key/path/to/artifact.ext
: X-Checksum- deploy: true, X-Checksum- sha1: sha1Value, X-Checksum- sha256: sha256Value, X-Checksum:校验和值(类型根据长度解析)
生产: application/json (application/vnd.org.jfrog.artifactory.storage.ItemCreated+json)
样本输出

把/ libs-release-local /我/ jar / 1.0 / jar-1.0.jar{“uri”:“http://localhost: 8081 / artifactory / libs-release-local /我/ jar / 1.0 / jar-1.0.jar”、“downloadUri”:“http://localhost: 8081 / artifactory / libs-release-local /我/ jar / 1.0 / jar-1.0.jar”、“回购”:“libs-release-local”、“路径”:“/我的/ jar / 1.0 / jar-1.0.jar”,“创建”:ISO8601 (yyyy-MM-dd没有'HH: mm: ss.SSSZ),“createdBy”:“userY”、“大小”:“1024”,“mimeType”:/ /字节“应用程序/ java archive”、“校验和”:{“md5”:字符串,“sha1”:字符串}," originalchecksum ":{"md5":字符串,"sha1":字符串}}


推送Docker标签对Bintray

描述:将Docker标签推到Bintray
计算可以是同步的(默认值),也可以是异步的。
安全:需要定义了部署权限和Bintray凭据的有效用户(有关详细信息,请参阅Bintray设置)。
使用: POST /api/bintray/docker/push/{repoKey}
生产:文本/平原

样本输出

POST api/bintray/docker/push/docker-local {"dockerImage": "jfrog/ubuntu:latest", //要推送的docker映像,使用':'作为特定标记或为'latest'留空"bintraySubject": "shayy", // bintraySubject" bintrayRepo": "containers", // bintraySubject的仓库"async": false //可选异步执行推送。默认值:false}

删除项目

描述:从指定的本地存储库或远程存储库缓存中删除文件或文件夹。
安全:需要具有“删除”权限的用户(可以是匿名的)
使用: DELETE /repo-key/path/to/file-or-folder
示例使用

删除http://localhost: 8081 / artifactory libs-release-local / ch / qos / logback / logback-classic / 0.9.9

获取后台任务

描述:检索当前在JFrog容器注册表中调度或运行的后台任务列表。任务可以处于以下几种状态之一:已计划、正在运行、已停止、已取消。Running task还会显示任务的开始时间。
安全:需要有效的admin用户
使用: GET /api/tasks
生产: application / json
样例输出

{"tasks":[{"id":"artifactory. "StatsPersistingServiceFlushJob # c52c9576-ae9b-4e7a-a0e5-01aab05a04b2”、“类型”:“org.artifactory.storage.jobs。StatsPersistingServiceFlushJob", "state":"scheduled", "description":"Download Statistics Flushing"}, {"id":"artifactory. "VirtualCacheCleanupJob # 82 bb1514 ea34 - 4 a71 - 940 d - 78 a61887981e”、“类型”:“org.artifactory.repo.cleanup。VirtualCacheCleanupJob", "state":"scheduled", "description":""}, {"id":"artifactory. "BinaryStoreGarbageCollectorJob # 039664 ac - 990 d - 4 - a32 - 85 - e1 - decd0b508142”、“类型”:“org.artifactory.storage.binstore.service。binarstoregarbagecollectorjob ", "state":"running", "started":"2015-05-15T15:39:37.566+02:00", "description":"Binaries GarbageCollector "}]}

运行垃圾收集

描述:运行垃圾收集
安全:需要admin用户。
使用: POST /api/system/storage/gc
生产:文本/平原
示例用法:

POST /api/system/storage/gc 200 OK

优化系统存储

描述:引发一个标志,以便在下一次垃圾收集之后调用分片文件存储的冗余存储单元之间的平衡。
注:这是专为管理员设计的高级特性。
安全:需要有效的admin用户。
使用:文章/ api /系统/存储/优化
生产:文本/平原
示例用法:

POST /api/system/storage/optimize 200 OK

搜索

对于内部用户和匿名用户,所有搜索都会返回有限的结果(与用户界面中的限制相同)。

要修改默认限制结果,请编辑artifactory.system.properties文件artifactory.search.limitAnonymousUsersOnly = false(默认是真正的),并添加一个新的限制artifactory.search.userQueryLimit(默认是1000)。

适用于以下REST API调用:
工件的搜索档案条目搜索属性搜索校验和搜索(受UI max results限制),此后未下载的工件日期范围内具有日期的工件在日期范围内创建的工件

人工查询语言(AQL)

描述:灵活高效的搜索使用人工查询语言(AQL)
安全 :需要认证用户。某些域/查询可能需要Admin访问。
使用:文章/ api /搜索/ aql
消耗: 文本/平原
示例用法:


POST /api/search/aql项目。Find ({" repo":{"$eq":"lib -release-local"}})

生产:application / json
样例输出:

{"results": [{"repo": " lilib -release-local", "path": "org/jfrog/artifactory", "name": "artifactory. "war", "type": "item type", "size": "75500000", "created": "2015-01-01T10:10;10", "created_by": "Jfrog", "modified": "2015-01-01T10:10;10", "modified_by": "Jfrog", "updated": "2015-01-01T10:10;10"}], "range": {"start_pos": 0, "end_pos":1, "total":1}}}

范围描述结果由查询返回,其中start_pos第一个索引是第一个结果,和end_pos是最后一个结果的索引+1。出于这个原因,end_pos将总是相同的值总计,返回的结果总数。


工件搜索(快速搜索)

描述:工件搜索部分的文件名。
搜索返回文件信息uri。可以将搜索限制在特定的存储库(本地或缓存)。
安全:需要一个特权用户(可以是匿名的)
使用GET /api/search/artifact?名字=[回购= x [y]]
标题(可选):X-Result-Detail: info(添加所找到工件的所有额外信息),X-Result-Detail: properties(获取所找到工件的属性),X-Result-Detail: info, properties(用于两者)。
生产: application/json (application/vnd.org.jfrog.artifactory.search.ArtifactSearchResult+json)
样本输出

GET / api /搜索/工件?Name =lib&repos=lib -release-local {"results": [{"uri": "http://localhost:8081/artifactory/api/storage/libs-release-local/org/acme/lib/ver/lib-ver。Pom "},{"uri": "http://localhost:8081/artifactory/api/storage/libs-release-local/org/acme/lib/ver2/lib-ver2。Pom "}]}

档案条目检索(类别检索)

描述:在存档中搜索类或任何其他资源。2022世界杯阿根廷预选赛赛程
可以将搜索限制在特定的存储库(本地或缓存)。
安全:需要一个特权用户(可以是匿名的)
使用GET /api/search/archive?name = [archiveEntryName][回购= x [y]]
生产: application/json (application/vnd.org.jfrog.artifactory.search.ArchiveEntrySearchResult+json)
样本输出

GET /api/search/archive?name=*Logger.class&repos=第三方- releaselocal,repo1-cache {"results":[{"entry": "org/apache/jackrabbit/core/query/lucene/AbstractIndex.LoggingPrintStream.class", "archiveUris":["http://localhost:8081/artifactory/api/storage/third-party-releases-local/org/apache/jackrabbit/ jackrabbit-core/1.2.3/jackrabbit-core-1.2.3.jar", "http://localhost:8081/artifactory/api/storage/third-party-releases-local/org/apache/jackrabbit/ jackrabbit-core/1.3.1/jackrabbit-core-1.3.1.jar"]},{"entry": "org/codehaus/plexus/logging/AbstractLogger.class", "archiveUris":["http://localhost:8081/artifactory/api/storage/repo1-cache/org/codehaus/plexus/plexus-container-default/ 1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar"]}]}


属性搜索

描述:按属性搜索。
如果没有为属性指定值,则假设为“*”。可以将搜索限制到特定的存储库(本地、远程缓存或虚拟)。
安全:需要一个特权用户(可以是匿名的)
使用GET /api/search/prop?[p1 = v1、v2] [p2 = v3][回购= x [y]]
标题(可选):X-Result-Detail: info(添加所找到工件的所有额外信息),X-Result-Detail: properties(获取所找到工件的属性),X-Result-Detail: info, properties(用于两者)。
生产: application/json (application/vnd.org.jfrog.artifactory.search.MetadataSearchResult+json)
样本输出

/ api /搜索/道具吗?P1 =v1,v2&p2=v3&repos=lib -release-local {"results": [{"uri": "http://localhost:8081/artifactory/api/storage/libs-release-local/org/acme/lib/ver/lib-ver。Pom "},{"uri": "http://localhost:8081/artifactory/api/storage/libs-release-local/org/acme/lib/ver2/lib-ver2。Pom "}]}

此后未下载的工件

描述检索自指定Java纪元以来未下载的所有工件毫秒
可选地只包含在指定之前创建的工件createdBefore日期,否则只有以前创建的工件notUsedSince返回。
可以将搜索限制在特定的存储库(本地或缓存)。
安全:需要特权非匿名用户。
使用GET /api/search/usage?notUsedSince=javaEpochMillis[&createdBefore=javaEpochMillis][&repos=x[,y]]
生产: application/json (application/vnd.org.jfrog.artifactory.search.ArtifactUsageResult+json)
样本输出

GET / api /搜索/使用吗?notUsedSince=long&createdBefore=long&repos=libs-release-local { "results" : [ { "uri": "http://localhost:8081/artifactory/api/storage/libs-release-local/org/acme/lib/ver/lib-ver.jar", "lastDownloaded": ISO8601 },{ "uri": "http://localhost:8081/artifactory/api/storage/libs-release-local/org/acme/lib/ver2/lib-ver2.jar", lastDownloaded: ISO8601 } ] }

日期范围内具有日期的工件

描述:获取给定范围内具有指定日期的所有工件。搜索可以局限于特定的存储库(本地或缓存)。
安全:需要特权非匿名用户。
使用: GET /api/search/dates?(从= fromVal][服务= toVal][回购= x [y]] [&dateFields = c [d]]
参数:参数可以是Java纪元的长值(毫秒或者一个ISO8601字符串值。是强制性的。如果没有提供,则将使用now(),如果省略其中任何一个,400坏请求返回。
datefield参数是一个以逗号分隔的日期字段列表,用于指定哪些字段值应该应用于。支持的日期字段为:创建lastModifiedlastDownloaded
这是一个必填字段,它还指定哪些字段将被添加到返回的JSON中。
如果工件的任何指定日期字段都在指定的范围内,那么工件将被返回。

生产: application/json (application/vnd.org.jfrog.artifactory.search.ArtifactResult+json)

样本输出

/ api /搜索/日期吗?datefield=created,lastModified,lastDownloaded&from=long&to=long&repos=libs-release-local { "results" : [ { "uri": "http://localhost:8081/artifactory/api/storage/libs-release-local/org/acme/lib/ver/lib-ver.jar", "created": ISO8601, "lastModified": ISO8601, "lastDownloaded": ISO8601 },{ "uri": "http://localhost:8081/artifactory/api/storage/libs-release-local/org/acme/lib/ver2/lib-ver2.jar", "created": ISO8601. "lastModified": ISO8601, "lastDownloaded": ISO8601 } ] }

在日期范围内创建的工件

描述:获取日期范围内创建的所有工件
如果没有指定'to',则使用now()。可以将搜索限制到特定的存储库(本地或远程缓存)。
安全:需要特权非匿名用户。
使用GET /api/search/creation?从=javaEpochMillis[&to=javaEpochMillis][&repos=x[,y]]
生产: application/json (application/vnd.org.jfrog.artifactory.search.ArtifactCreationResult+json)
样本输出

GET / api /搜索/创建?从=long&to=long&repos=libs-release-local { "results" : [ { "uri": "http://localhost:8081/artifactory/api/storage/libs-release-local/org/acme/lib/ver/lib-ver.jar", "created": ISO8601 },{ "uri": "http://localhost:8081/artifactory/api/storage/libs-release-local/org/acme/lib/ver2/lib-ver2.jar", "created": ISO8601 } ] }

列出Docker回购sitori西文

描述:列出JFrog Container registry Docker存储库中托管的所有Docker存储库(注册表的_catalog)。
笔记属性从缓存中读取ListDockerRepositoriesListDockerTagsrest api,设置artifactory.docker.catalogs.tags.fallback.fetch.remote.cache在artifact . System .properties文件中将系统属性设置为true(默认为false)。
安全:需要特权用户
使用GET /api/docker/{repo-key}/v2/_catalog?N =<请求>中的N &last=<前一个响应>中的最后一个标签值
生产: application / json

{"repositories": [,…]}

示例使用

GET /api/docker/docker-local/v2/_catalog {"repositories": ["busybox", "centos", "hello-world"]}

Docker标签列表

描述:列出指定的JFrog Container Registry Docker存储库的所有标签。
笔记:启用从缓存中读取ListDockerRepositoriesListDockerTagsrest api,设置artifactory.docker.catalogs.tags.fallback.fetch.remote.cache在artifact . System .properties文件中将系统属性设置为true(默认为false)。
安全:需要特权用户
使用GET /api/docker/{repo-key}/v2/{image name}/tags/list?n=<指定Docker Image的标签>&last=<连续标签的数量>
生产: application / json

{"name": "<图片名称>","tags":["<标签>"]}

示例使用

GET api/docker/v2/postgres/tags/list {"name": "postgres", "tags": ["9.5.2"]}

安全

获取用户加密密码

描述:获取认证请求者的加密密码。
注:请求需要使用明文密码进行身份验证。也就是说,当向JFrog Container Registry提交请求时,用于身份验证的密码需要是明文。如果您使用API密钥进行身份验证,则将在响应中返回加密的API密钥。
安全:需要特权用户
使用: GET /api/security/encryptedPassword
生产:普通/文本
样例输出

GET /api/security/encryptedPassword AP5v2zs9ga7CJNZb74u3arAKE5B . GET /api/security/encryptedPassword

配置用户锁定策略

描述:配置用户锁定策略,当错误登录次数超过配置的最大登录次数时,用户将被锁定。
安全:需要有效的管理用户
用法:把/ api /安全/ userLockPolicy
生产:应用程序/文本
示例用法:

PUT http://{host}:{port}/artifactory/api/security/userLockPolicy -H 'Content-Type: application/json'-d ' {"enabled": true|false, "loginAttempts":{value}}'

找回用户锁定策略

描述:检索当前配置的用户锁定策略。
安全:需要有效的管理用户
用法:GET / api /安全/ userLockPolicy
生产:application / json
示例用法:

GET http://{host}:{port}/artifactory/api/security/userLockPolicy '{"enabled": true|false, "loginAttempts":{value}}'

锁定用户

描述:如果启用了锁定用户,则列出所有由于反复错误登录而被锁定的用户。
安全:需要有效的admin用户
使用:/ api /安全/ lockedUsers
生产: application / json
示例使用

GET /api/security/lockedUsers ["usera", "userb",…]

解锁被锁定用户

描述:解锁因反复错误登录而被锁定的单个用户。

安全:需要有效的管理用户
用法:POST / api /安全/ unlockUsers / {userName}
生产:应用程序/文本
示例用法:

POST / api /安全/ unlockUsers / {userName}


解锁锁定用户

描述:解锁由于反复出现错误登录尝试而被锁定的用户列表。

安全:需要有效的管理用户
用法:POST / api /安全/ unlockUsers
生产:应用程序/特克斯
示例用法:


POST /api/security/unlockUsers -H 'Content-Type: application/json' -d '[{userA}, {userB}]'

解锁所有锁定用户

描述:解锁由于反复出现错误登录尝试而被锁定的所有用户。

安全:需要有效的管理用户
用法:POST / api /安全/ unlockAllUsers
生产:应用程序/文本
示例用法:
POST / api /安全/ unlockAllUsers



创建API密钥

描述:为当前用户创建API密钥。如果API key已经存在,则返回错误-使用重新生成API key代替。
使用: POST /api/security/apiKey
生产: application / json
样例输入

POST / api /安全/ apiKey

样例输出

{"apiKey": "3OloposOtVFyCMrT+cXmCAScmVMPrSYXkWIjiyDCXsY="}

重新生成API密钥

描述:为当前用户重新生成API密钥
使用: PUT /api/security/apiKey
生产: application / json
样例输入

把/ api /安全/ apiKey

样例输出

{"apiKey": "3OloposOtVFyCMrT+cXmCAScmVMPrSYXkWIjiyDCXsY="}

获取API密钥

描述:获取当前用户自己的API密钥
使用: GET /api/security/apiKey
生产: application / json

示例使用

GET / api /安全/ apiKey

样例输出

{"apiKey": "3OloposOtVFyCMrT+cXmCAScmVMPrSYXkWIjiyDCXsY="}

撤销API密钥

描述:撤销当前用户的API密钥
使用: DELETE /api/security/apiKey
生产: application / json


撤销用户API密钥

描述:撤销其他用户的API密钥
安全:需要特权用户(仅管理员)
使用
: DELETE /api/security/apiKey/{username}
生产: application / json


撤销所有API密钥

描述:撤销当前系统中定义的所有API键
安全:需要特权用户(仅管理员)
使用
: DELETE /api/security/apiKey?deleteAll = {0/1}
生产: application / json


激活JFrog容器注册表密钥加密

描述:创建一个新的JFrog容器注册表加密密钥并激活JFrog容器注册表加密密钥。
笔记:为管理员提供的高级特性
安全:需要有效的admin用户
使用: POST /api/system/encrypt
生产:文本/平原
示例使用

POST /api/system/encrypt完成

禁用JFrog容器注册表密钥加密

描述:移除当前的JFrog容器注册表加密密钥并禁用JFrog容器注册表加密密钥。
笔记:为管理员提供的高级特性
安全:需要有效的admin用户
使用: POST /api/system/decrypt
生产:文本/平原
示例使用

POST /api/system/解密完成


创建令牌

描述:创建访问令牌
安全:需要合法用户
使用
: POST /api/security/token
内容类型:应用程序/ x-www-form-urlencoded

生产: application / json

{"access_token": "<访问令牌>","expires_in": <有效期(秒)>,"scope": "<访问范围>","token_type": "持牌人","refresh_token": "<如果access_token可刷新则刷新令牌>"}

样本使用

curl -uadmin:password -XPOST "http://localhost:8081/artifactory/api/security/token" -d "username=johnq" -d "scope=member-of-groups:readers" 200 {"access_token": "adsdgbtybbeeyh…","expires_in": 3600, "scope": "api:* member-of-groups:readers", "token_type": " holder ", "refresh_token": "fgsfgsdugh8dgu9s8gy9hsg…"}

该端点接受以下参数:

grant_type

[可选,默认值:"client_credentials"]

用于验证请求的授权类型。在这种情况下,唯一支持的值是“client_credentials”,如果不指定该参数,该值也是默认值。

用户名

为其创建令牌的用户名。如果用户不存在,则创建瞬态用户。非管理员用户只能为自己创建令牌,因此他们必须指定自己的用户名。

如果用户不存在,member-of-groups必须提供范围令牌(例如:组成员:g1, g2, g3…

范围

要分配给令牌的范围,以空格分隔的范围令牌列表形式提供。目前有三种可能的作用域令牌:

  • "api:*" -表示令牌授予REST api调用的访问权。无论是否在调用中指定,默认情况下总是授予此权限。
  • 组成员:[] -指示令牌关联的组(如。组成员:g1, g2, g3…。令牌根据为列出的组指定的权限目标授予访问权限。

    组名中的空格

    如果任何组名包含空格字符,则整个值应该用转义的引号括起来。例如:

    范围= member-of-groups: \“读者,测试组\”

    为组名指定“*”,表示这是一个user-scoped令牌,也就是说,令牌提供了与当前主题相同的访问权限,就像username参数中指定的那样,因此会动态计算。
    非管理员用户只能提供其所属组的子集范围

  • "jfrt@:admin" -提供指定Artifactory实例的admin权限。这只适用于管理员。


expires_in

[可选,默认值:3600]

令牌有效的时间(以秒为单位)。若要指定永不过期的令牌,请设置为0。非admin用户只能设置等于或小于默认3600的值。

可刷新的

[可选,默认值:false]

如果为真,则此令牌是可刷新的,并且刷新令牌在过期后可用于用新令牌替换它。

观众

[可选,默认值:仅为创建令牌的Artifactory实例的服务ID]

的其他Artifactory实例或服务的一个空格分隔的列表,这些实例或服务应该接受这个令牌,该令牌由从获取服务ID端点。

如果您希望令牌被所有Artifactory实例接受,您可以使用以下受众参数“audience=jfrt@*”。




刷新令牌

描述:刷新接入令牌以延长其有效期。如果只提供访问令牌和刷新令牌(不提供其他参数),则使用此对进行身份验证。如果提供了用户名或任何其他参数,则请求必须通过授予管理权限的令牌进行身份验证。
安全:需要有效的用户(除非同时提供了访问令牌和刷新令牌)
用法:POST / api /安全/令牌

内容类型:应用程序/ x-www-form-urlencoded

生产: application/json(请参阅创建令牌

示例用法:

curl -XPOST "http://localhost:8081/artifactory/api/security/token" -d "grant_type=refresh_token" -d "refresh_token=fgsg53t3g…" -d "access_token=gsfdgw35gt…"400(错误)如果令牌是由不同的Artifactory实例创建的(因此不能被刷新)

该端点接受以下参数:

grant_type

应该设置为refresh_token

refresh_token
需要刷新的接入令牌的刷新令牌。
access_token

要刷新的访问令牌。

用户名

详情请参阅创建令牌

注意:access_token用户名是互斥的,因此只应该指定其中一个参数。

如果access_token时,将使用与该令牌相同的设置创建新令牌。


范围
expires_in
可刷新的
观众

获得令牌

描述:获取由JFrog Container Registry实例创建的所有令牌的列表
安全:需要admin用户
用法:GET / api /安全/令牌
内容类型:应用程序/ x-www-form-urlencoded

生产: application / json


{"tokens":[{"token_id":"<令牌id>", "issuer":"<发行JFrog Container Registry实例的服务id>", "subject":"", "expiry": <令牌到期时间为1970年1月1日00:00:00起的秒数>,"refreshable":, "issued_at":< 1970年1月1日00:00:00起的秒数发行时间>,},…]}



示例用法:

curl -uadmin:password -XGET "http://localhost:8081/artifactory/api/security/token 200 OK {"tokens":[{"token_id":"123", "issuer":"jf-artifactory@123123", "subject":"jf-artifactory@123123/users/theusername", "expiry":145154545, " refreshhable ":true, "issued_at":144152345},…]}

撤销令牌

描述:通过指定token或token_id来撤销访问令牌
安全:需要admin用户
用法:POST / api /安全/令牌/撤销
内容类型:应用程序/ x-www-form-urlencoded

生产: application / json
示例用法:

curl -uadmin:password -XPOST "http://localhost:8081/artifactory/api/security/token/revoke" -d "token=fasdt3…"或curl -uadmin:password -XPOST "http://localhost:8081/artifactory/api/security/token/revoke" -d "token_id=7e0eec…"400(错误)如果令牌是由不同的JFrog容器注册实例创建的(因此不能被撤销)

该端点可以采用以下参数之一:

令牌

要撤销的令牌

token_id
要撤销的令牌的ID

获取服务ID

描述: JFrog Container Registry实例或集群的服务ID。JFrog容器注册中心服务ID已格式化jfrt@ > < id。
安全:需要admin用户
用法:GET / api /系统/ service_id
生产:文本/平原
示例用法:

curl -uadmin:password -XGET "http://localhost:8081/artifactory/api/system/service_id" 200 jfrt@ee27b1d1-534d-4723-80b5-5bd893d19c43



存储库

获取存储库

描述:返回指定类型的所有存储库的最小存储库详细信息列表。
安全:需要一个特权用户(可以是匿名的)
使用GET /api/repositories[?]type=repositoryType (local|remote|virtual|distribution)][&packageType=helm | |码头工人|通用的
生产: application/json (application/vnd.org.jfrog.artifactory.repositories.RepositoryDetailsList+json)

样例输出

GET /api/repositories [{"key": "Docker - LOCAL", "type": "LOCAL", "url": "http://localhost:8080/artifactory/docker-local", "packageType": "Docker"}, {"key": "Helm - LOCAL", "type": "LOCAL", "url": "http://localhost:8080/artifactory/helm-local", "packageType": "Helm"}, {"key": "bintray-docker-remote", "type": "REMOTE", "url": "https://docker.bintray "。io”,packageType: Docker}, {"key": "Docker - REMOTE", "type": "REMOTE", "url": "https://registry-1.docker。io/", "packageType": "Docker"}]

计算舵图指数

描述:计算指定路径上的Helm图表索引(仅限本地存储库)。
安全:需要管理所承担的权限集(管理+删除/覆盖+部署/缓存+注释+读取)
使用: POST /api/helm/{repoKey}/reindex
生产:应用程序/文本
示例使用

POST /api/helm/helm-local/reindex OK

系统及配置

系统信息

描述:系统信息
获取一般系统信息。
安全:需要有效的admin用户
使用: GET /api/system
生产:文本/平原
样例输出

GET /api/system系统信息输出文本

系统健康Ping

描述:获得一个关于JFrog容器注册表状态的简单状态响应。
如果JFrog容器注册表正常工作,则返回200个“OK”文本,如果不是将返回一个HTTP错误码,并给出原因。
安全:需要一个有效的用户(可以是匿名)。如果artifactory.ping。在artifact .system中设置allowUnauthenticated=true。属性,则即使禁用匿名访问,也不需要身份验证。
使用: GET /api/system/ping
生产:文本/平原
样例输出

GET /api/system/ping OK

验证连接

描述:验证JFrog容器注册表和其他产品之间的双向连接
如果JFrog容器注册表从提供的端点接收到类似的成功代码(200),则返回Success(200)。请参阅下面可能的错误代码。
安全:需要admin用户。
使用:发布/ api /系统/ verifyconnection
消耗:application / json


POST /api/system/verifyconnection {+ "endpoint": "< JFrog Container Registry应该连接到>的URL ", - "username": "<用于连接测试>的用户名",- "password": "<用于连接测试>的密码"}

生产: application / json

当出错时,返回400和一个JSON对象,其中包含从另一个系统返回的错误。


样例输出

{"errors": [{"status": 400, "message": "从端点url: HTTP 404:页面未找到"}]}

常规配置

描述:获取通用配置(artifact .config.xml)。
安全:需要有效的admin用户
使用: GET /api/system/configuration
生产: application/xml (http://www.jfrog.org/xsd/artifactory-v1_7_3.xsd
样例输出

GET /api/system/configuration  .xml

保存常规配置

描述:保存通用配置(artifact .config.xml)。
笔记:这是一个高级功能-在保存之前确保新配置确实是你想要的。
安全:需要有效的admin用户
使用: POST /api/system/configuration
消耗: application/xml (http://www.jfrog.org/xsd/artifactory-v1_7_3.xsd
示例使用

POST /api/system/configuration  .xml

更新自定义URL库

描述:更改自定义URL基
安全:需要有效的admin用户
使用: PUT /api/system/configuration/baseUrl
例子:curl -X PUT "http://localhost:8081/artifactory/api/system/configuration/baseUrl" -d 'https://mycompany.com:444/artifactory' -uadmin:密码-H "内容类型:文本/明文"
样例输出

URL库已成功更新为“https://mycompany.com:444/artifactory”。

许可证信息

描述:检索当前安装的license信息。
安全:需要有效的admin用户
使用: GET /api/system/licenses
生产application / json
样例输出

GET /api/system/licenses {"type": "Commercial", "validThrough": "May 15, 2014", "licensedTo": "JFrog inc."}

安装许可证

描述:安装新的许可密钥或更改当前的许可密钥。
安全:需要有效的admin用户
使用: POST /api/system/licenses
消耗application / json

POST /api/system/licenses {"licenseKey": "<所提供的许可证密钥>" //任何换行符必须由转义序列(\n)}表示

生产application / json
样例输出

POST /api/system/licenses {"status": 200, "message": "The license has been successfully installed."}

版本和外接程序信息

描述:检索有关当前JFrog容器注册表版本、修订和当前安装的附加组件的信息
安全:需要有效的用户(可以是匿名的)
使用: GET /api/system/version
生产application / json(应用程序/ vnd.org.jfrog.artifactory.system.Version + json)
样例输出

GET /api/system/version {"version": "2.2.2", "revision": "10427", "addons": ["build", "ldap", "properties", "rest", "search", "sso", "watch", "webstart"]}

获取反向代理配置

描述:检索反向代理配置
安全:需要有效的admin用户
使用GET / api /系统/配置/网络服务器
生产: application / json
样例输出

GET /api/system/configuration/webServer {"key": "nginx", "webServerType": "nginx", "artifactoryAppContext": "artifactory", "publicAppContext": "artifactory", "serverName": "www.si-fil.com", "serverNameExpression": "*.www.si-fil.com", "artifactoryServerName": "localhost", "artifactoryPort": 8081, "sslCertificate": "/etc/ssl/myKey. "/etc/ssl/myKey. cert", "sslKey": "/etc/ssl/myKey. cert", "sslKey": "key", "dockerReverseProxyMethod": "SUBDOMAIN", "useHttps": true, "useHttp": true, "sslPort": 443, "httpPort": 76}

更新反向代理配置

描述:更新反向代理配置
安全:需要admin用户
使用:文章/ api /系统/配置/网络服务器
消耗application / json
示例用法:

POST /api/system/configuration/webServer {"key": "nginx", "webServerType": "nginx", "artifactoryAppContext": "artifactory", "publicAppContext": "artifactory", "serverName": "www.si-fil.com", "serverNameExpression": "*.www.si-fil.com", "artifactoryServerName": "localhost", "artifactoryPort": 8081, "sslCertificate": "/etc/ssl/myKey. "/etc/ssl/myKey. cert", "sslKey": "/etc/ssl/myKey. cert", "sslKey": "key", "dockerReverseProxyMethod": "SUBDOMAIN", "useHttps": true, "useHttp": true, "sslPort": 443, "httpPort": 76}

获取反向代理代码片段

描述:以文本格式获取反向代理配置片段
安全:需要有效的用户(不是匿名的)
使用:/ api /系统/配置/ reverseProxy / nginx
生产文本/平原
示例用法:

GET /api/system/configuration/reverseProxy/nginx ##在config ssl_certificate /etc/ssl/ mykey .cert中设置https时添加ssl条目;ssl_certificate_key /etc/ssl/myKey.key;ssl_session_cache共享:SSL: 1米;ssl_prefer_server_ciphers;##服务器配置服务器{监听443 ssl;听;Server_name ~(?.+)\.www.si-fil.com;If ($http_x_forwarded_proto = ") {set $http_x_forwarded_proto $scheme;} ##应用程序特定的日志## access_log /var/log/nginx/www.si-fil.com-access.log计时;## error_log /var/log/nginx/www.si-fil.com-error.log; rewrite ^/$ /artifactory/webapp/ redirect; rewrite ^/artifactory$ /artifactory/webapp/ redirect; }

启动SHA256迁移任务

描述:启动sha - 256迁移过程。
请注意:迁移也可以使用在artifacts .system.properties文件中设置属性
安全:管理员权限
使用: POST api/system/migration/sha2/start
消耗application / json

{- "batchThreshold":10(默认值),- "queryLimit":100(默认值),- "waitForClusterSleepIntervalMillis":5000(默认值),- "sleepIntervalMillis":5000(默认值),- "forceRunOnNodeId":""}

生产文本/平原
样例输出

Sha256 migration scheduled to start successfully . Sha256 migration计划启动成功

停止SHA256迁移任务

描述:停止sha - 256迁移过程
安全:管理员权限
请注意:sleepIntervalMillis中定义的启动SHA256迁移任务
使用: POST api/system/migration/sha2/stop?{sleepIntervalMillis = 5000}
生产文本/平原
样例输出

Sha256迁移计划停止成功。

进出口

导入存储库内容

描述:导入一个或多个存储库。
安全:需要有效的admin用户
使用: POST: /api/import/repositories
请求参数:
path -要导入的文件系统路径。这可能指向一个特定的文件夹以导入单个存储库的数据,也可能指向父“repositories”文件夹以导入所有存储库的数据。
repo -空/空repo ->所有
元数据—包含元数据—默认1 .单击“确定”
verbose - verbose - default 0
生产:文本/平原
样例输出

职位:/ api /导入/存储库吗?路径= pathToRepos&verbose = 1

导入系统设置示例

描述:返回默认的导入设置JSON。在进行系统导入时,JFrog Container Registry维护任何安全实体(用户、组、权限和令牌)。
安全:需要有效的admin用户
使用: GET: /api/import/system
生产application / json(应用程序/ vnd.org.jfrog.artifactory.system.ImportSettings + json)
示例使用

GET /api/import/system {"importPath": "/import/path", "includeMetadata": true, "verbose": false, "failOnError": true, "failIfEmpty": true}

全系统导入

描述:从服务器本地JFrog Container Registry导出目录导入完整系统。在进行系统导入时,JFrog Container Registry维护任何安全实体(用户、组、权限和令牌)。
安全:需要有效的admin用户
使用: POST: /api/import/system
消耗application / json(应用程序/ vnd.org.jfrog.artifactory.system.ImportSettings + json)
生产:文本/平原
示例使用

POST /api/import/system {import-settings。json}

导出系统设置示例

描述:返回默认的导出设置JSON。
安全:需要有效的admin用户
使用: GET: /api/export/system
生产application / json(应用程序/ vnd.org.jfrog.artifactory.system.ExportSettings + json)
示例使用

GET /api/export/system {"exportPath": "/export/path", "includeMetadata": true, "createArchive": false, "bypassFiltering": false, "verbose": false, "failOnError": true, "failIfEmpty": true, "m2": false, "incremental": false, "excludeContent": false}

导出系统

描述:导出完整系统到服务器本地目录。
安全:需要有效的admin用户
使用: POST: /api/export/system
消耗application / json(应用程序/ vnd.org.jfrog.artifactory.system.ExportSettings + json)
生产:文本/平原
示例使用

POST /api/export/system{export-settings。json}

错误响应

如果出现错误,JFrog容器注册表将以JSON格式返回错误响应。响应包含HTTP状态代码和错误消息。

例如,一个格式糟糕的API调用将返回“404,File not found”响应:

{"errors": [{"status": 404, "message": "文件未找到。"}]}


样例输入

POST /api/security/apiKey {"apiKey": "3OloposOtVFyCMrT+cXmCAScmVMPrSYXkWIjiyDCXsY="}
把/ api /存储/ libs-release-local / ch qos / logback / logback-classic / 0.9 9 ?属性= =赢,linux的操作系统,qa = done&recursive = 1


当参数可以有多个值时,可以通过以下方式将参数项分开:

  • 使用分号-;(推荐)
  • 使用管道(“|”)字符的编码- %7C
    或者,你可以配置你的NGINX来编码URL,这样如果URL中使用了未编码的管道,NGINX就会将其编码为%7C。我们建议您验证此配置不会破坏NGINX所服务的任何其他系统

  • 没有标签