如何使用 pysftp 从 SFTP 下载文件?
Posted
技术标签:
【中文标题】如何使用 pysftp 从 SFTP 下载文件?【英文标题】:How can I download file from SFTP using pysftp? 【发布时间】:2019-03-14 16:01:59 【问题描述】:我有一个包含一组文件夹的 SFTP 服务器。我想从这些文件夹之一下载文件。
有人可以帮我写python代码吗?
我应该从哪里开始?
【问题讨论】:
【参考方案1】:你试过in pysftp's documentation这个例子吗?
import pysftp
with pysftp.Connection('hostname', username='me', password='secret') as sftp:
with sftp.cd('public'): # temporarily chdir to public
sftp.put('/my/local/filename') # upload file to public/ on remote
sftp.get('remote_file') # get a remote file
【讨论】:
srv = pysftp.Connection(host="", username="",password="", cnopts=cnopts) 你试过了吗?你有没有得到任何错误?如果是这样,请更新您的问题以反映您已经尝试过的内容。【参考方案2】:Michael Powers 的补充。
如果您的服务器是一个帐户,而您的个人帐户是另一个帐户。 如果您的服务器帐户具有 root 权限,请按照 Michael 的方法。 如果没有,你可以使用io buffer来下载这个文件
import io
server_sftp = pysftp.Connection(host=test_host, username=server_account,
password=server_pwd, cnopts=cn_opts)
your_user_sftp = pysftp.Connection(host=host_name, username = user_name,
password = user_pwd, cnopts=cn_opts)
try:
file_like=io.BytesIO()
server_account.getfo(server_file_location,file_like)
your_user_sftp.putfo(file_like, target_file_location)
finally:
flie_like.close()
server_sftp.close()
your_user_sftp.close()
【讨论】:
以上是关于如何使用 pysftp 从 SFTP 下载文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 ssh-ed25519 作为 pysftp 的密钥来设置主机密钥文件