python中如何通过FTP传输文件存储对象

python中如何通过FTP传输文件存储对象,python,web-services,flask,ftp,sftp,Python,Web Services,Flask,Ftp,Sftp,我有一个rester Web服务(Flask Web服务),其中客户端向我发送文件对象(图像或pdf);现在我想把它存储到FTP位置。如何将文件对象(图像或pdf)存储到FTP位置 我使用的是Flask Webservice(Rester API),我能够接收类型为FileStorage的文件objct。然后,我尝试使用paramikoAPIparamiko.SFTPClient类将文件对象(图像或pdf)存储到FTP,以将文件传输/存储到FTP。但它不接受文件对象。它只需要本地文件路径。 下面

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

我使用的是Flask Webservice(Rester API),我能够接收类型为
FileStorage
的文件objct。然后,我尝试使用
paramiko
API
paramiko.SFTPClient类将文件对象(图像或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吗?

一个简单的解决方案是将文件存储对象保存在磁盘上,然后提供到paramiko sftp客户端的路径(您的
localpath
变量)

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


根据,要获得更优化的解决方案,您可以使用该方法

putfo(fl,远程路径,文件大小=0,回调=无,确认=真)

这会将您的行
sftp.put(localpath,filepath)
替换为
sftp.putfo(filestorage\u对象,filepath)