使用 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中文网其他相关文章!