0

file.renameTo方法返回 false,在docker container. 我PVC在容器实例中使用。

我尝试删除 PVC,然后它工作正常,但是当我使用 PVC 时返回 false

返回 false 表示文件没有被移动或重命名。

在我的情况下,文件从PVC位置移动到 docker 容器指定的位置。

当我们PVCKubernetes集群上启用时,存储在不同的filesystem.

我认为这个问题与文件从一个文件系统移动到另一个文件系统有关。因为当 PVC 未启用file.renameTo时,工作正常,但当 PVC 启用时,它会失败。

所以我的问题是有什么可能的方法来解决这个问题。我无法禁用PVC因此将文件从一个文件系统移动到另一个文件系统的可能解决方案是什么。

4

1 回答 1

1

根据我的假设,当我们使用时,PVC您的存储位于不同的位置,而您的 docker 容器位于不同的位置。

因此,在这种情况下,文件移动有点复杂。在这种情况下,我使用的解决方案是在目标位置复制和粘贴文件。

public void copyFile(File pvcFileLocation, File dockerContainerLocation){

      FileInputStream inputStream = new FileInputStream(pvcFileLocation);
      FileOutputStream outputStream = new FileOutputStream(dockerContainerLocation);
      int b = -1;
      while ((b = inputStream.read()) != -1) {
        outputStream.write(b);
      }
      inputStream.close();
      outputStream.close();
    }
于 2020-06-26T12:14:14.410 回答