Приложение Flask не получает данные изображения из POST-запроса узла - PullRequest
0 голосов
/ 17 октября 2019

Я использую колбу с Gunicorn. Это приложение имеет одну конечную точку, которая принимает файл изображения. Запустив сервер с python __init__.py, он может получать изображение как от почтальона, так и от узла приложения. Принимая во внимание, что если я запускаю приложение, используя gunicorn, я могу получить изображение, когда запрос приходит через POSTMAN, но когда узел отправляет изображение, файл приходит как пустой.

Я пытался реплицировать запрос POSTMAN, используя Node, но проблема все еще остается.

Узел отправляет файл в данных формы.

Docker File:


FROM python:3.6
RUN python3.6 -m pip install pip --upgrade && \
    python3.6 -m pip install Flask==1.1.1 && \
    python3.6 -m pip install -U prometheus_client
RUN python3.6 -m pip install flask gunicorn

WORKDIR /app
COPY ./ /app
WORKDIR /app

RUN chmod 644 __init__.py && \
    python3.6 -m pip install -r requirements.txt
RUN chown 65534:65534 -R /app
EXPOSE 5000
USER 65534
# CMD ["python3.6", "-u", "__init__.py" ]

CMD ["gunicorn", "-b", "0.0.0.0:5000", "__init__:app"]



Node Code:

const form = new FormData();
const readStream = fs.createReadStream(file.path);
form.append("deviceImage", readStream);
const deviceDetectinResponse = await axios.post(
                URL?createdBy=${APP_NAME}`,
                form,
                {
                    headers: form.getHeaders()
                }
            );

Мне нужнозапустите сервер python на рабочем месте, и поскольку Flask не рекомендуется, я перешел на gunicorn.

...