从 nexus 下载 ARTEFACT 失败,因为数据已缓存



我正在使用curl发布到maven:

const curlOptions = [
'--silent',
'--output', '/dev/stderr',
'--write-out', '"%{http_code}"',
'--upload-file', fileLocation,
'--noproxy', options.noproxy ? options.noproxy : '127.0.0.1',
'--fail'
];
const curlCmd = ['curl', curlOptions.join(' '), targetUri].join(' ');
const childProcess = exec(curlCmd, execOptions, function (error) {
if (error) {
console.log(chalk.red(error));
}
});

这适用于上传,但工件被缓存,如果不转到 nexus 并在受影响的工件上运行重建元数据,我就无法从 curl 获取工件。

是否可以以编程方式使缓存失效?

为了直接回答您的问题,应该可以使用 REST API 和"/beta/repository/{repositoryName}/invalidate-cache"端点在更高版本的 NXRM3 中使缓存失效。 也应该可以做同样的事情并运行计划任务(重建元数据;/v1/tasks/{id}/run endpoint(,尽管这似乎是一个不太理想的路由,因为它通常用于修复。

您可以在 NXRM3 文档中查看有关 REST API 的更多信息,尽管某些文档的目的是通过使用应用程序中的 Swagger UI 进行自我记录。 请注意,在此答案时,只有具有 nx-admin 权限的用户才能访问 Swagger UI(尽管具有适当权限的人可以使用端点(。 您可以在系统 -> API 下的"管理"部分找到 Swagger UI。

话虽如此,我认为可能还有其他事情发生。 我认为没有必要每次都像这样使您的缓存失效。 然而,我不想离这个问题太远。 我鼓励你看看 community.sonatype.com,寻找可能正在发生的事情的答案,如果你没有看到,就在那里问。

相关内容

最新更新