我正在尝试将文件上传到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(),但是我尝试了一下,但没有帮助。
是否可以以正常速度上传一致的文件?