3

我知道工件使用基于校验和的存储,并且即使我以不同的名称上传多个相同的工件,也只会存储工件的一个副本。

由于我有许多项目使用版本匿名但可能相同的 jar,我想知道是否有任何方法可以让工件告诉我在多个 id 下引用了哪些工件。

4

3 回答 3

4

虽然 Artifactory 没有提供此信息的现有功能,但使用 Artifactory 的REST-API的小脚本实际上很容易实现。

例如,您可以编写一个树遍历器(使用文件夹信息资源),将校验和映射到文件(文件校验和可以使用文件信息资源获得)。

或者,如果您使用 Artifactory 的 Pro 版本,您可以使用File List 资源检索存储库中所有工件的列表

于 2011-09-18T07:53:19.720 回答
1

这是针对 PostGreSQL 数据库运行的 SQL。我还没有尝试使用任何其他数据库。

select sha1_actual, node_name, node_path, repo, *
from nodes
where sha1_actual in 
(
    select sha1_actual 
    from nodes
    where node_type != 0
    group by sha1_actual
    having count(1) > 1
)
order by sha1_actual
于 2016-11-10T19:17:48.933 回答
0
#!/bin/bash

#
# search in artifactory, lists duplicates angelos@unix.gr
#

search=$1

if [ "X$search" == "X" ]
then
    echo "$0 <search item>"
    exit 1
else
    search=`echo $search |sed -e 's/ /\%20/gi' `
    search="*${search}*"
fi

USER=`whoami`
PASS=${PASS:-somepass}
CREDS=${USER}:${PASS}
ARTIFACTORY=https://artifactory.somesite.com/artifactory

curl -s -u ${CREDS} -o search.txt ${ARTIFACTORY}/api/search/artifact\?name=${search}

echo "List of all uris is in search.txt"
echo "All instances of $search follow"
echo "---------------------------------"
grep $search search.txt | grep -v pom | awk '{ print $3}'  | xargs -i  basename {} | sort | uniq -c | sort -rn
于 2015-12-07T07:42:13.093 回答