Как загрузить файл на сервер flask, работающий на AWS EC2 Ubuntu 18.04? - PullRequest
0 голосов
/ 06 апреля 2020

Я использую NGINX, Unicorn3 и Python для создания веб-приложения, в которое пользователи могут загружать файлы. Я следовал этой серии учебник , чтобы настроить конфигурации Unicorn3, NGINX.

Я запускаю его на AWS EC2 Ubuntu 18.04 экземпляр.

My HTML код:

<body>
    <h1>Welcome to Flask application</h1>
</body>
<html>
    <head>
        <title>File upload using Python Flask to AWS EC2 Instance</title>
    </head>
    <body>
        <form action="/handleUpload" method="post" enctype="multipart/form-data">
            Choose the file: <input type="file" name="photo" multiple/><BR>
                <input type="submit" value="Upload"/>
        </form>
    </body>
</html>

app.py, содержащий бэкэнд Python:

import os
from flask import Flask, render_template#,request,url_for, redirect

app = Flask(__name__)

UPLOAD_FOLDER = '/home/RAW_Images'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
@app.route("/")
def home_func():
        return render_template("home.html")

@app.route("/handleUpload", method=['POST'])
def handleFileUpload():
        files = files.request.files.getlist("photo")
        for file in files:
                file.save(os.path.join(app.config['UPLOAD_FOLDER'],file.filename))

Мой NGINX файл в / etc / nginx / sites-enable

server{
    listen 8080;
    server_name 52.27.92.134;
    location / {
            proxy_pass http://unix:/home/ubuntu/flaskapp/flaskapp.sock;
            #proxy_pass http://127.0.0.1:8000;
    }}

Мой служебный файл gunicorn3:

[Unit]
Description=Gunicorn service
After=network.target

[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/flaskapp
ExecStart=/usr/bin/gunicorn3 --workers 3 --bind unix:flaskapp.sock -m 007 app:app

Ошибка после запуска службы gunicorn3:

gunicorn3.service - Gunicorn service


Loaded: loaded (/etc/systemd/system/gunicorn3.service; static; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2020-04-06 01:08:12 UTC; 3s ago
  Process: 9552 ExecStart=/usr/bin/gunicorn3 --workers 3 --bind unix:flaskapp.sock -m 007 app:app (code=exited, status=1/FAILURE)
 Main PID: 9552 (code=exited, status=1/FAILURE)

Apr 06 01:08:12 ip-172-31-27-128 gunicorn3[9552]:     self.stop()
Apr 06 01:08:12 ip-172-31-27-128 gunicorn3[9552]:   File "/usr/lib/python3/dist-packages/gunicorn/arbiter.py", line 393, in stop
Apr 06 01:08:12 ip-172-31-27-128 gunicorn3[9552]:     time.sleep(0.1)
Apr 06 01:08:12 ip-172-31-27-128 gunicorn3[9552]:   File "/usr/lib/python3/dist-packages/gunicorn/arbiter.py", line 244, in handle_chld
Apr 06 01:08:12 ip-172-31-27-128 gunicorn3[9552]:     self.reap_workers()
Apr 06 01:08:12 ip-172-31-27-128 gunicorn3[9552]:   File "/usr/lib/python3/dist-packages/gunicorn/arbiter.py", line 524, in reap_workers
Apr 06 01:08:12 ip-172-31-27-128 gunicorn3[9552]:     raise HaltServer(reason, self.WORKER_BOOT_ERROR)
Apr 06 01:08:12 ip-172-31-27-128 gunicorn3[9552]: gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
Apr 06 01:08:12 ip-172-31-27-128 systemd[1]: gunicorn3.service: Main process exited, code=exited, status=1/FAILURE
Apr 06 01:08:12 ip-172-31-27-128 systemd[1]: gunicorn3.service: Failed with result 'exit-code'.
...