2017-03-13 14 views
0

クライアントがファイルオブジェクト(Imageまたはpdf)を送ってきたrester webservice(Flask Webservice)があります。今私はそれをFTPの場所に保存したい。ファイルオブジェクト(Imageまたはpdf)をFTPの場所に保存するにはどうしたらいいですか?FileStorageオブジェクトをPythonでFTP経由で転送するには

私はFlask Webservice(Rester API)を使用していますが、タイプFileStorageのファイルオブジェクトを受け取ることができました。 FTPにファイルを転送/保存するために、paramiko API paramiko.SFTPClient classを使用してファイルオブジェクト(Imageまたはpdf)を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コードFTP

にファイルを転送するために使用されるサンプル・コードでありますか

答えて

0

単純な解決策は、FileStorageオブジェクトをディスクに保存してから、paramiko sftp client(localpath変数)のパスを指定することです。

これは、ディスクにデータを書き込んだ後に再度読み取る必要があるため、最適化されていないソリューションです。より最適化されたソリューションについては


paramiko's SFTP docによると、あなたは方法

putfo(FL、remotePathは、FILE_SIZE = 0、コールバック=なし、=真の確認)

を使用することができます

これはあなたの行を置き換えるでしょうsftp.put(localpath, filepath)によってsftp.putfo(filestorage_object, filepath)

関連する問題