管道流和Fabric8 Kubernetes客户端-复制文件的md5sum错误并且传输速度太慢

时间:2018-10-24 17:50:35

标签: java kubernetes fabric8

我正在尝试将文件上传到Kubernetes窗格。我决定去 用于Fabric8的kubernetes-client,并提出了以下代码块:

        try(KubernetesClient client = new DefaultKubernetesClient()) {

        final ExecWatch watch = client
                .pods()
                .inNamespace("default")
                .withName("laughing-pug-jenkins-856f744489-tzjkl")
                .redirectingInput()
                .redirectingError()
                .exec("tar", "xf","-","-C", "/");

        on(watch.getInput()).field("sink").set("buffer", new byte[16384 * 16384]);

        try(final FileInputStream stream = new FileInputStream("/home/x/Development/kubernetes-client/backup/test.file")) {
            final TarArchiveEntry entry = new TarArchiveEntry("/test.file");

            try (TarArchiveOutputStream tarOut = new TarArchiveOutputStream(watch.getInput());
                 ByteArrayOutputStream byteOut = new ByteArrayOutputStream()) {
                IOUtils.copyLarge(stream, byteOut);
                entry.setSize(byteOut.size());
                tarOut.putArchiveEntry(entry);
                byteOut.writeTo(tarOut);
                tarOut.closeArchiveEntry();
            }

        }

我正在使用jOOR反射地更改缓冲区大小。默认的缓冲区大小导致文件传输非常慢-上传速度约为1KB / s。

文件已上传,并且过程结束,但是两个文件的md5sum不相等。

有什么办法解决吗?似乎需要调用flush(),但是我尝试了一下,但没有帮助。

是否可以以正常速度上传一致的文件?

0 个答案:

没有答案