2016-12-06 110 views
0

Artifactory REST APIの使用について質問があります。いくつかの指針が有用であろう。Artifactoryでの単一のアーティファクトの検索/削除

ArtifactoryのREST APIを使用するスクリプトを作成しています。このスクリプトの目的は、古いものを探し出し、他の要件を満たしてから削除することです。 (すべてのアーティファクトの所有者がそれらのうちの1つを完成させるわけではありません)

文書番号"Artifacts Not Downloaded Since"があり、ファイルのリストを返します。 「成果物」については、複数のファイル(Mavenの場合:POMといくつかのJAR)を含むいくつかのコンセプトを期待していました。ただ一つのファイルを返すという事実は、私は今ではファイル名を取り除いてから、フォルダ全体を削除するようになっています。

  1. クエリは返します:https://.../repository/api/storage/libs-snapshot-local/com/x/y/1.0.0-SNAPSHOT/y-1.0.0-SNAPSHOT.jar
  2. 私はストリップ:https://.../repository/api/storage/libs-snapshot-local/com/x/y/1.0.0-SNAPSHOT/
  3. 私はその取り除かフォルダを削除。

最近削除されたファイルで、まだ削除されている他のファイル(POMファイルまたはそのフォルダ内の他のファイル)が問題のフォルダに含まれていると怖いです。

アーティファクトレベル(GAVレベル)でREST APIによってこのようなことが報告されないのはなぜですか?

Dockerリポジトリに関連する質問は、「ダウンロードされていません」はすべて子コンテナを考慮していますか?それとも、タグを削除するだけの方法がありますか?Artifactoryは関連付けられているが未使用のイメージ/レイヤーファイルを自動的に削除しますか?

答えて

7

Dockerのクリーンアップでは、別のREST APIを使用する必要があります。Deletion and Cleanup for Docker

REST API成果物は、時間の間ダウンロードされなかった成果物のみを戻してからダウンロードされません。 GAVレベルはチェックされません。このフォルダ内に最近ダウンロードされた他のアーティファクトが存在する可能性があります。実際には、クリーンアップアーティファクトの例を提供するthis blogにあるサンプルスクリプトがあります。このスクリプトとusq AQLにロジックを追加して目的を達成することができます。また、Artifactory Proを実行している場合は、Artifactory機能をユーザープラグインを使用して拡張することもできます。 JFrogパブリックリポジトリのGithubで見つかるサンプルユーザプラグインもあります - >ユーザはJFrogDevです。要件に合うユーザープラグインを作成することができます。

+0

あなたの答えは、アーティファクトとファイルの間で依然として混同しています。しかし、はい、あなたは "GAVレベル"と言いますが、それは私がArtifactoryとやりとりする方法です。私が "** artifact **とやりとりする"と言いました。しかし、もし_files_が本当に私が得たものなら、 "ダウンロードされていないアーティファクト"コールはかなり役に立たないようです。 AQLにも同じ欠陥があるようです。残っている唯一のものは、「ダウンロードされたアーティファクト」を取得し、フォルダURIを解析し、フォルダ内のすべてのファイルを取得し、最近ダウンロードしたファイルがあるかどうかを確認します。リポジトリが大きくなると、これは非常に非効率的になります。 –

関連する問題