2011-09-16 3 views
3

Я знаю, что artifactory использует хранилище на основе контрольной суммы и будет хранить только одну копию артефакта, даже если я загружу несколько идентичных под разными именами.Как обнаружить дубликаты артефактов в artifactory

Поскольку у меня есть много проектов с анонимными версиями, но, вероятно, одинаковыми баночками, я хотел бы знать, есть ли способ заставить artifactory сказать мне, какие артефакты ссылаются под несколькими идентификаторами.

ответ

4

В то время как у Artifactory нет существующей функции, которая предоставляет эту информацию, на самом деле ее довольно легко достичь с помощью небольшого скрипта, который использует Artifactory's REST-API.

Вы можете, например, написать пешеход (используя Folder Info resource), который отображает контрольные суммы в файлы (контрольная сумма файла может быть получена с использованием File Info resource).

Или, если вы используете Pro версию Artifactory, вы можете получить список всех артефактов в хранилище с помощью File List resource

0
#!/bin/bash 

# 
# search in artifactory, lists duplicates [email protected] 
# 

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 
1

Вот SQL для запуска в базе данных PostgreSQL. Я не пробовал его с какой-либо другой базой данных.

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 

 Смежные вопросы

  • Нет связанных вопросов^_^