Я использую колбу с 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.