在 Artifactory 用户插件中获取文件内容

Getting file contents in Artifactory user plugin

是否可以在用户插件的 beforeCreate 事件期间获取文件内容(在存储库中保存文件之前)?

我是 运行 Artifactory 4.3.1.

代码片段:

import org.artifactory.fs.FileInfo

storage {
  beforeCreate { item ->
    item = item as FileInfo

    log.warn "Analyzing item: ${item}"
    // I want to do something with the file/item contents here (for example extract ZIP)
  } 
}

感谢帮助!

遗憾的是,这目前是不可能的。猜测,这可能是为了允许用户插件在文件上传之前拒绝部署(即通过 Expect: 100-Continue header),但我还没有深入了解代码以了解当然可以。

如果您需要从插件访问文件内容,我建议使用 afterCreate 挂钩,然后获取输入流,如:

InputStream is = repositories.getContent(item.repoPath).inputStream

当然,在这种情况下,您不能像在 beforeCreate 挂钩中那样拒绝上传,但如果需要,您可以随时删除工件。