Я создал приложение Flask, которое может загружать несколько файлов в экземпляр EC2. Код моего приложения flass:
import os
from flask import Flask, request, render_template, url_for, redirect
import flask
#Initialize the app by adding:
app = Flask(__name__)
#Add the below line to create the home page route:
@app.route("/")
def fileFrontPage():
return render_template('index.html')
@app.route("/handleUpload", methods=['POST'])
def handleFileUpload():
files = flask.request.files.getlist("photo")
protocol = 'pscp -i'
key_loc = ' key_loc'
upload_dir = ' dir'
ec2_instance = ' instance_name'
remote_dir = ':/home/RAW_Image'
for file in files:
arg = protocol+key_loc+upload_dir+file.filename+ec2_instance+remote_dir
os.system(arg)
return redirect(url_for('fileFrontPage'))
if __name__ == '__main__':
app.run()
После завершения загрузки программа на экземпляре EC2 сожмет файлы и добавит их в новый каталог. Новый каталог будет сжат и должен быть доступен для загрузки после нажатия кнопки загрузки (код для этого еще не написан). После нажатия кнопки загрузки открывается другая веб-страница с возможностью загрузки.
Это то, что у меня есть для создания zip-файла и:
import paramiko
k = paramiko.RSAKey.from_private_key_file("key_location")
c = paramiko.SSHClient()
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
print("connecting")
c.connect(hostname="name", username="ubuntu", pkey=k)
print("connected")
commands = ["zip -r /home/Image.zip /home/RAW_Image", "scp username@remote:/file/to/send /where/to/put"]
for command in commands:
print("Executing {0}".format(command))
stdin , stdout, stderr = c.exec_command(command)
print(stdout.read())
print("Errors")
print(stderr.read())
c.close()
Но scp дает Host key verification failed
ошибка
Я что-то не так делаю? Есть ли альтернатива этому?
Спасибо.
Редактировать 1: я запускаю код на моем персональном компьютере. Я использую s sh, потому что я хочу запустить распознавание изображений для загруженных изображений, и я планировал выполнить сценарий bash, который запускает набор сценариев Python после завершения загрузки.