SSH接続したArmadillo-IoT G3からファイルをダウンロードしたい

実現したいこと

VS codeを使用し,python flaskにて以下のような動作をさせるWebアプリを作成しています。

1.SORACOM APIでArmadilloをリモートアクセス可能にする
2.WebアプリからSSHログイン、Armadillo側のファイル一覧情報等を取得
3.WebアプリからSCPコマンド実行しArmadilloからファイルをダウンロード
4.クライアントPCにはブラウザーの機能でファイル(txt/csv)をダウンロードしてエディタ編集し、
クライアントPCからWebアプリへのファイルアップロード機能を作ってアップロードする
5.WebアプリからSCPコマンド実行しArmadilloへ編集したファイルをアップロード

今のところ,2.まで確認できており,3.でWebアプリからSCPコマンド実行しArmadilloからファイルをクライアントPCにダウンロードするところで行き詰っている状態です。
コマンドの実行はHTMLで作成したボタンで実行するようにしています。

以下のようにソースコードを記述し,アプリをrunさせ,web画面でボタンを押してダウンロードを行うとアプリをrunしているサーバーPCにファイルがダウンロードされますが,これをクライアントPCにダウンロードするにはどうすればよいのでしょうか。


def File_download():
# ファイルパス
remote_path = 'atmark@12-345-67-89.napter.soracom.io:/home/atmark/test.txt'
local_path = r"\Users\ユーザー\Desktop"
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(atmark@12-345-67-89.napter.soracom.io, port=12345, username='atmark', password='password')
result = subprocess.run(["scp", "-P", '12345', remote_path, file_dir], capture_output=True)
ssh.close()
return send_file('C:/Users/ユーザー/Desktop/test.txt',as_attachment=True)


また,ファイルをダウンロードする際,Are you sure you want to continue connecting (yes/no/[fingerprint])?への回答と
Armadilloのパスワード入力を求められます。これを省略する方法はあるのでしょうか。

コメントを投稿

0 コメント