我有一个rester webservice (Flask Webservice),客户端向我发送文件对象(图像或pdf);现在我想将它存储到FTP位置。如何将文件对象(图像或pdf)存储到FTP位置。
我使用的是Flask Webservice(Rester API),我能够接收FileStorage类型的文件objct。然后,我尝试将文件对象(图像或pdf)存储到FTP,使用paramiko API paramiko.SFTPClient class将文件传输/存储到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吗?
发布于 2017-03-13 15:48:47
一个简单的解决方案是将FileStorage对象保存在磁盘上,然后给出paramiko客户端( localpath变量)的路径。
请注意,这是一个非优化的解决方案,因为它需要在磁盘上写入数据,然后重新读取它。
对于一个更优化的解决方案,根据帕拉米科的SFTP医生,您可以使用该方法
putfo(fl,远程路径,file_size=0,callback=None,confirm=True)
它将用sftp.put(localpath, filepath)替换为sftp.putfo(filestorage_object, filepath)。
https://stackoverflow.com/questions/42756120
复制相似问题