build.run: pipeline SFTP operations to improve performance.
This commit is contained in:
parent
4dea0b2d0f
commit
1f1d189441
|
@ -154,10 +154,11 @@ class BuildPlan:
|
||||||
|
|
||||||
mkdirs(filename)
|
mkdirs(filename)
|
||||||
|
|
||||||
mode = "wt" if isinstance(content, str) else "wb"
|
mode = "t" if isinstance(content, str) else "b"
|
||||||
with sftp.file(str(filename), mode) as f:
|
with sftp.file(str(filename), "w" + mode) as f:
|
||||||
|
f.set_pipelined()
|
||||||
# "b/t" modifier ignored in SFTP.
|
# "b/t" modifier ignored in SFTP.
|
||||||
if mode == "wt":
|
if mode == "t":
|
||||||
f.write(content.encode("utf-8"))
|
f.write(content.encode("utf-8"))
|
||||||
else:
|
else:
|
||||||
f.write(content)
|
f.write(content)
|
||||||
|
@ -261,6 +262,7 @@ class RemoteSSHBuildProducts(BuildProducts):
|
||||||
sftp.chdir(self.__root)
|
sftp.chdir(self.__root)
|
||||||
|
|
||||||
with sftp.file(filename, "r" + mode) as f:
|
with sftp.file(filename, "r" + mode) as f:
|
||||||
|
f.prefetch()
|
||||||
# "b/t" modifier ignored in SFTP.
|
# "b/t" modifier ignored in SFTP.
|
||||||
if mode == "t":
|
if mode == "t":
|
||||||
return f.read().decode("utf-8")
|
return f.read().decode("utf-8")
|
||||||
|
|
Loading…
Reference in a new issue