使用 JFrog CLI 时 Artifactory 下载中的奇怪行为

Weird behavior in Artifactory download when using JFrog CLI

我在使用 JFrog CLI 下载时发现了这种非常奇怪的行为。
好的,让我们从上传开始:当我想上传一个完整的目录层次结构时,假设我有这样的结构:

root
│
└───Folder1
    └───Folder2
        │   file1
        │   file2
        │   file3
        │
        └───Folder3
                nested1
                nested2
                nested3

我想上传 Folder2 的内容(虽然我的位置在根目录!)及其所有子目录和文件到 `MyRepo/MyPath',所以我的 repo 看起来像:


MyRepo
    └───MyPath
        │   file1
        │   file2
        │   file3
        │
        └───Folder3
                nested1
                nested2
                nested3

如果我试试这个:

jfrog rt upload --flat=false Folder1/Folder2/ MyRepo/MyPath/ 

我在 Artifactory 的层次结构中将留下 Folder1/Folder2,这不是我想要的,所以我使用占位符:

我将执行以下命令:

jfrog rt upload --flat=false "Folder1/Folder2/(*)" MyRepo/MyPath/{1} 

效果很好,我能理解其中的逻辑:--flat=falsenested* 文件将保留在 Folder3 目录中,而 file* 文件将在 Folder2 目录中,并且 占位符说:将 Folder1/Folder2 中的任何内容复制到 MyRepo/MyPath。完美!

尝试执行相反的操作,即下载,使用相同的逻辑:假设我想将 MyPath 下的所有内容下载到我所在的 Folder1/Folder2 目录中,所以我会得到第一个上面画的结构, 我试试这个:

jfrog rt download --flat=flase "MyRepo/MyPath/(*)" Folder1/Folder2/{1} 

但这会创建一个非常奇怪的目录结构,我什至不想在这里画出来。解决方案是使用 flat=true 而不是 flat=false,这确实不直观且根本无法理解。有人可以解释这种行为,或者至少可以将我引导给 JFrog 中我需要报告的任何人吗?

这确实是一个错误。我刚刚在这里提交了这个错误 - https://github.com/jfrog/jfrog-cli/issues/883

此问题特定于占位符功能。 JFrog CLI 似乎误解了 --flat 的正确定义,当它在“jfrog rt download”命令中与占位符一起使用时。我相信这个问题很快就会得到解决。

非常感谢分享!