ARTIFACTORY:为什么我得到“期望一个文件,但发现一个文件夹”错误?
在Artifactory中设置存储库之间的复制时,您可能会遇到“期望一个文件,但发现一个文件夹”错误。这个错误意味着什么?
当您试图在目标实例中复制一个与文件夹同名的文件,而Artifactory无法覆盖它时,就会发生此错误。以下面的例子为例:
- 我们在两个Artifactory实例中创建两个存储库
- 在Artifactory B(目标实例),我们部署一个文件,路径为" generic-local/test/file.ext "
- 在A工厂(源实例),我们在“generic-local”下部署一个名为“test”的文件
- 中的“generic-local”配置一个推送复制Artifactory一给住在里面的人Artifactory B实例
- 在触发这些存储库之间的复制后,您将观察到以下错误:
为'generic-local:'执行文件夹复制时发生错误,期望有一个文件夹,但发现一个文件,在:generic-local:test
这是预期的行为,因为Artifactory的行为就像Linux文件系统一样,所以如果目标中有一个目录与您试图部署的文件具有相同的名称,那么将打印上述错误。
因此,如果遇到“期望一个文件,但发现一个文件夹”错误,则需要验证目标实例中没有与未能从源实例复制的文件同名的目录。然后,您可以再次触发复制,并监视在$JFROG_HOME/artifactory/var/log/artifactory-service.log下找到的日志,以确保复制已经成功完成,没有任何问题。
