如何使用 SCPClient 创建目录
How can I create a directory with SCPClient
我正在尝试使用 SCPClient
将文件上传到远程服务器。如果目标目录不存在则失败
from scp import SCPClient, SCPException
...
with SCPClient(self.client.get_transport()) as scp:
scp.put(source_path, target_path)
我正在努力寻找有助于澄清这一点的文档或示例。是否有可能有帮助的资源?
我假设您正在使用 scp module for paramiko。它似乎不支持使用目录。
如果确实需要使用SCP协议,可以试试scpclient library。它也没有明确的方法来创建目录。毕竟,这不是 SCP 协议的设计目的。
但是您的任务似乎是上传目录 – 上传目录,而不是文件:
with closing(WriteDir(ssh_client.get_transport(), "/target/dir")) as scp:
scp.send_dir('/source/dir')
这将导致在上传过程中隐式创建目录(如果尚不存在)。
尽管我建议您改用 SFTP 协议。它内置于 Paramiko 中。所以你不需要任何外部库。 SFTP 支持您将需要的一切(与 SCP 相反)。
参见 Upload files using SFTP in Python, but create directories if path doesn't exist。
我正在尝试使用 SCPClient
将文件上传到远程服务器。如果目标目录不存在则失败
from scp import SCPClient, SCPException
...
with SCPClient(self.client.get_transport()) as scp:
scp.put(source_path, target_path)
我正在努力寻找有助于澄清这一点的文档或示例。是否有可能有帮助的资源?
我假设您正在使用 scp module for paramiko。它似乎不支持使用目录。
如果确实需要使用SCP协议,可以试试scpclient library。它也没有明确的方法来创建目录。毕竟,这不是 SCP 协议的设计目的。
但是您的任务似乎是上传目录 – 上传目录,而不是文件:
with closing(WriteDir(ssh_client.get_transport(), "/target/dir")) as scp:
scp.send_dir('/source/dir')
这将导致在上传过程中隐式创建目录(如果尚不存在)。
尽管我建议您改用 SFTP 协议。它内置于 Paramiko 中。所以你不需要任何外部库。 SFTP 支持您将需要的一切(与 SCP 相反)。
参见 Upload files using SFTP in Python, but create directories if path doesn't exist。