ARTIFACTORY:为什么我得到“期望一个文件,但发现一个文件夹”错误?

Fadi Rouhana
2023-01-22 11:06

在Artifactory中设置存储库之间的复制时,您可能会遇到“期望一个文件,但发现一个文件夹”错误。这个错误意味着什么?

当您试图在目标实例中复制一个与文件夹同名的文件,而Artifactory无法覆盖它时,就会发生此错误。以下面的例子为例:

  1. 我们在两个Artifactory实例中创建两个存储库
  2. Artifactory B(目标实例),我们部署一个文件,路径为" generic-local/test/file.ext "
  3. 在A工厂(源实例),我们在“generic-local”下部署一个名为“test”的文件
  4. 中的“generic-local”配置一个推送复制Artifactory一给住在里面的人Artifactory B实例
  5. 在触发这些存储库之间的复制后,您将观察到以下错误:

为'generic-local:'执行文件夹复制时发生错误,期望有一个文件夹,但发现一个文件,在:generic-local:test

这是预期的行为,因为Artifactory的行为就像Linux文件系统一样,所以如果目标中有一个目录与您试图部署的文件具有相同的名称,那么将打印上述错误。

因此,如果遇到“期望一个文件,但发现一个文件夹”错误,则需要验证目标实例中没有与未能从源实例复制的文件同名的目录。然后,您可以再次触发复制,并监视在$JFROG_HOME/artifactory/var/log/artifactory-service.log下找到的日志,以确保复制已经成功完成,没有任何问题。