如何使用SCPClient创建目录

问题描述 投票:1回答:1

我正在尝试使用SCPClient将文件上传到远程服务器。如果目标目录不存在,它将失败

from scp import SCPClient, SCPException
...
with SCPClient(self.client.get_transport()) as scp:
    scp.put(source_path, target_path)

我正在努力寻找有助于澄清这一点的文档或示例。有没有可能有用的资源?

python paramiko scp
1个回答
0
投票

我假设您正在使用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

© www.soinside.com 2019 - 2024. All rights reserved.