JFrog Artifactory开源版上传文件夹无法设置属性:是否为CLI bug及解决方法
问题解答
这是不是JFrog CLI的Bug?
不是。JFrog CLI的--target-props选项设计上仅对文件类型的工件生效,不会应用到上传的文件夹上,这是预期行为,并非Bug。
开源版Artifactory设置文件夹属性的可行方案
由于开源版不支持jf rt set-props命令,只能直接调用Artifactory的REST API实现,以下是具体步骤和Python实现示例:
1. 核心REST API接口
使用Artifactory的文件夹属性更新接口,请求方式为PUT,接口路径格式:
/artifactory/api/storage/<repo-key>/<folder-path>
请求体需包含properties字段,以JSON对象格式传入键值对形式的属性。
2. Python实现示例
需提前安装requests库(执行pip install requests),代码如下:
import requests # 替换为你的实际配置 ARTIFACTORY_URL = "http://你的Artifactory地址" REPO_KEY = "test1" FOLDER_PATH = "folder1" AUTH_CREDS = ("用户名", "API密钥或密码") TARGET_PROPS = {"prop1": "a", "prop2": "b"} # 构造请求URL api_url = f"{ARTIFACTORY_URL}/artifactory/api/storage/{REPO_KEY}/{FOLDER_PATH}" # 发送PUT请求设置属性 response = requests.put( api_url, json={"properties": TARGET_PROPS}, auth=AUTH_CREDS ) # 检查执行结果 if response.status_code == 204: print("文件夹属性设置成功") else: print(f"设置失败,状态码:{response.status_code},详情:{response.text}")
3. 验证属性是否生效
使用JFrog CLI的搜索命令验证:
jf rt search "test1/folder1" --include-dirs=true --server-id=ServerID
返回结果中会新增properties字段,显示已设置的属性信息。
内容的提问来源于stack exchange,提问作者Geoff Alexander
相关产品推荐
相关产品推荐

