【发布时间】:2021-10-02 19:38:04
【问题描述】:
我必须从 Artifactory 中删除空文件夹。这样做的首选方法是更改 AQL 中的规则,但据我所知,如果不删除非空的 Artifactory 文件夹,就不可能做到这一点。我尝试添加类型规则如下:
"type": {"$eq":"any"}
另外,我不能将插件添加到 Artifactory API,所以我不能使用Empty Folder Clean-up
最后,我尝试使用 curl 和 REST API Artifactory 列出所有带有路径的文件夹并拉出没有任何子文件夹的文件夹,例如:
curl -u "${username}":"$password" -X GET "<url>/artifactory/api/storage/<repo>/jenkins/artifacts?list&deep=1&listFolders=1" | jq '.file
s[].uri' | awk -F '"' '{ print $2 }' | awk -F '/' '{ print $2 }' | sort | uniq -c
并删除没有子文件夹(子文件夹)的文件夹。但我不确定这是不是最好的主意。您对我如何才能做得更好、更有效有什么建议吗?或者其他一些想法?
提前感谢您的帮助!
【问题讨论】:
-
我可以尝试创建一个 JFrog CLI 插件来删除空文件夹并在此处发布 - github.com/jfrog/jfrog-cli-plugins-reg - 如果您认为这对您有帮助,请告诉我,我会创建它.
-
@EyalBenMoshe 感谢您的回复!如果可以的话,我将不胜感激:)
-
我会在这个 jfrog-cli 插件上工作。我很快就会在这里分享更新。
-
工作正在进行中 - github.com/eyalbe4/jfrog-cli-plugins/tree/rm-empty/rm-empty - 在准备好之前还有一些工作要做。
-
公关已创建,可能很快就会被审核 - github.com/jfrog/jfrog-cli-plugins/pull/58
标签: api rest continuous-integration artifactory