首页  >  文章  >  后端开发  >  哪些 Python 库提供独立于平台的 SFTP 支持?

哪些 Python 库提供独立于平台的 SFTP 支持?

Patricia Arquette
Patricia Arquette原创
2024-10-22 23:52:28126浏览

Which Python Libraries Provide Platform-Independent SFTP Support?

使用 Python 实现独立于平台的 SFTP

安全文件传输 (SFTP) 对于安全数据交换至关重要,但需要找到支持它的 Python 库可能是一个挑战。当硬编码用户凭据和远程位置不可行时,探索替代解决方案至关重要。

Paramiko 是一个流行的 SFTP Python 库。它的语法相对简单,如下所示:

<code class="python">import paramiko

host = "THEHOST.com"
port = 22
transport = paramiko.Transport((host, port))

password = "THEPASSWORD"
username = "THEUSERNAME"
transport.connect(username=username, password=password)

sftp = paramiko.SFTPClient.from_transport(transport)

import sys
path = './THETARGETDIRECTORY/' + sys.argv[1]
localpath = sys.argv[1]
sftp.put(localpath, path)

sftp.close()
transport.close()
print('Upload done.')</code>

此代码使用硬编码的主机、端口、用户名和密码将文件上传到远程 SFTP 服务器。但是,请务必注意,硬编码凭据不被视为最佳实践,应尽可能避免。

Twisted 是 Python 中 SFTP 的另一个选项。它是一个更复杂的库,但提供了更广泛的功能。以下是如何使用 Twisted 进行 SFTP 的示例:

<code class="python">from twisted.conch.ssh import userauth, connection, channel, sftp

password = "THEPASSWORD"
username = "THEUSERNAME"
transport = connection.SSHClientFactory().buildProtocol('localhost', None)
transport.requestService(userauth.SSHUserAuthClientPassword(username, password))

sftp = channel.SSHChannel(transport)
sftp.request_sftp()

import sys
path = './THETARGETDIRECTORY/' + sys.argv[1]
localpath = sys.argv[1]
sftp.sendFile(localpath, path)

sftp.close()
transport.loseConnection()
print('Upload done.')</code>

Paramiko 和 Twisted 都可以在 Python 中促进与平台无关的 SFTP 连接。 Paramiko 更易于使用,而 Twisted 提供更高级的功能。两者之间的选择取决于项目的具体要求。

以上是哪些 Python 库提供独立于平台的 SFTP 支持?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn