使用Nexus3 API如何获取存储库中的工件列表

Gra*_*ath 5 nexus

我们正在从Nexus Repository Manager 2.1.4迁移到Nexus 3.1.0-04.在版本2中,我们已经能够使用API​​来获取存储库的工件列表,但是我们很难找到使用Nexus 3 API执行此操作的方法.

阅读https://books.sonatype.com/nexus-book/reference3/scripting.html第16章后,我们已经能够使用groovy脚本获取特定blob的工件信息,如:

import org.sonatype.nexus.blobstore.api.BlobId

def properties = blobStore.blobStoreManager.get("default").get(new BlobId("7f6379d32f8dd78f98b5b181166703b6")).getProperties()
return [headers: properties.headers, metrics: properties.metrics]
Run Code Online (Sandbox Code Playgroud)

但是,我们找不到迭代blob存储内容的方法.我们可以得到一个blob商店对象:

blobStore.blobStoreManager.get("default")
Run Code Online (Sandbox Code Playgroud)

但是,API似乎没有为我们提供获取该商店中所有blob列表的方法.我们需要获取blob存储中的blobID列表.

有没有办法通过Nexus 3 API实现这一目标?

Dar*_*ter 5

我们的一位内部团队成员将这些结合在一起.它不使用blobStore,但完成了我相信你想要做的事情(以及更多):https://gist.github.com/kellyrob99/2d1483828c5de0e41732327ded3ab224

对于某些背景知识,将blobStore视为我们存储位的位置,而没有关于它们的信息.OrientDB具有组件/资产记录并存储有关它们的所有信息.您通常希望使用它而不是blobStore for Asset信息作为结果.