【问题标题】:How to transfer FileStorage object via FTP in python如何在 python 中通过 FTP 传输 FileStorage 对象
【发布时间】:2017-03-13 03:18:11
【问题描述】:

我有一个恢复网络服务 (Flask Webservice),客户向我发送文件对象(图像或 pdf);现在我想将它存储到 FTP 位置。如何将文件对象(图像或 pdf)存储到 FTP 位置。

我正在使用Flask Webservice(Rester API),我能够接收FileStorage 类型的文件对象。然后我尝试使用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?

【问题讨论】:

    标签: python web-services flask ftp sftp


    【解决方案1】:

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

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


    对于更优化的解决方案,根据paramiko's SFTP doc,您可以使用该方法

    putfo(fl, remotepath, file_size=0, callback=None, confirm=True)

    这会将您的行 sftp.put(localpath, filepath) 替换为 sftp.putfo(filestorage_object, filepath)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多