You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过CLI或REST API操作Artifactory指定仓库中已有文件夹的属性?

Artifactory 文件夹属性操作(REST API + CLI)

一、核心说明

Artifactory完全支持对文件夹进行属性的设置、获取与更新操作,你之前遇到的问题是误用了工件属性的API端点。文件夹属性操作需要针对文件夹路径,并通过专属参数或端点明确标识目标为文件夹。


二、REST API 操作方法

所有请求需替换以下占位符:

  • {ARTIFACTORY_URL}:你的Artifactory实例地址(如http://localhost:8081/artifactory)
  • {REPO_NAME}:目标仓库名称
  • {FOLDER_PATH}:文件夹完整路径(如my-folder/sub-folder,请勿以斜杠开头)
  • {USERNAME}:Artifactory用户名
  • {PASSWORD/API_KEY}:登录密码或API Key

1. 获取文件夹属性

使用storage端点,通过folder=1参数明确指定操作对象为文件夹:

curl -u {USERNAME}:{PASSWORD/API_KEY} \
"{ARTIFACTORY_URL}/api/storage/{REPO_NAME}/{FOLDER_PATH}?properties&folder=1"

返回示例(JSON格式):

{
  "uri": "{ARTIFACTORY_URL}/api/storage/{REPO_NAME}/{FOLDER_PATH}",
  "properties": {
    "project.owner": ["john"],
    "build.version": ["v1.0.0"]
  }
}

2. 设置文件夹属性(覆盖原有属性)

使用properties端点,通过folder=1参数指定文件夹,此操作会覆盖原有所有属性:

curl -u {USERNAME}:{PASSWORD/API_KEY} -X PUT \
"{ARTIFACTORY_URL}/api/storage/{REPO_NAME}/{FOLDER_PATH}?properties=project.owner=john|build.version=v1.0.0&folder=1"
  • 多个属性用|分隔,单个属性多值用,分隔(如project.owner=john,jane)

3. 更新文件夹属性(保留原有属性,仅修改指定项)

Artifactory 7.10及以上版本支持PATCH请求,可新增或修改单个属性,不影响其他原有属性:

curl -u {USERNAME}:{PASSWORD/API_KEY} -X PATCH \
-H "Content-Type: application/json" \
-d '{
  "properties": {
    "build.version": ["v1.1.0"],
    "env": ["production"]
  }
}' \
"{ARTIFACTORY_URL}/api/storage/{REPO_NAME}/{FOLDER_PATH}?folder=1"
  • 未在请求中提及的原有属性会被保留,已存在的属性会被新值覆盖,不存在的属性会被新增

三、CLI 操作方法(jf CLI)

先通过jf c add命令完成CLI与Artifactory实例的配置,再执行以下操作:

1. 获取文件夹属性

jf rt props-get --repo {REPO_NAME} --folder {FOLDER_PATH}

2. 设置文件夹属性(覆盖原有)

jf rt props-set --repo {REPO_NAME} --folder {FOLDER_PATH} "project.owner=john|build.version=v1.0.0"

3. 更新文件夹属性(追加/修改单属性)

# 覆盖已有属性值
jf rt props-set --repo {REPO_NAME} --folder {FOLDER_PATH} "build.version=v1.1.0" --append=false

# 追加属性值
jf rt props-set --repo {REPO_NAME} --folder {FOLDER_PATH} "env=staging" --append=true

四、常见问题排查

  • 路径校验:确保文件夹路径正确,且目标仓库中确实存在该文件夹,路径请勿以斜杠开头
  • 权限检查:操作账号需拥有目标仓库的编辑或管理权限
  • 版本兼容:PATCH请求仅支持Artifactory 7.10及以上版本,低版本需先获取原有属性,合并后再通过PUT请求重新设置

内容的提问来源于stack exchange,提问作者Shubham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 18:22:42