如何通过python中的FTP传输文件



我有一个rester web服务( Flask Webservice),客户端向我发送文件对象(image或pdf);现在,我想将其存储到FTP位置。如何将文件对象(图像或PDF)存储到FTP位置。

我正在使用Flask Webservice(Rester API),我可以接收FileStorage类型的文件OBJCT。然后,我尝试使用paramiko API paramiko.SFTPClient class将文件对象(图像或PDF)存储到FTP中,以将文件传输到FTP。但是它不接受文件对象。它只期望本地文件路径。以下是用于将文件传输到FTP

的示例代码

ftp代码:

import paramiko
transport = paramiko.Transport((host, port))
transport.connect(username = username, password = password)
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put(localpath, filepath)

您能建议我如何将文件对象存储到FTP?

一个简单的解决方案是在磁盘上保存您的filestorage对象,然后给paramiko sftp client的路径(您的localpath变量)。

请注意,这是一个不优化的解决方案,因为它需要在磁盘上写入数据然后重新阅读。


对于更优化的解决方案,根据Paramiko的SFTP Doc,您可以使用该方法

putfo(fl,remotepath,file_size = 0,callback = none,confirst = true)

可以用sftp.putfo(filestorage_object, filepath)

替换您的行sftp.put(localpath, filepath)

相关内容

  • 没有找到相关文章

最新更新