#nginx #curl
#nginx #curl
Вопрос:
Все,
Я пытаюсь загрузить локальный файл на мой удаленный сервер Nginx через cURL. Я создал Nginx из исходного кода с помощью модуля загрузки и модуля DAV. В нижней части страницы Nginx есть пример формы для загрузки файла. Я не уверен, как бы я реализовал форму, и (несколько) поисковых запросов Google вернули мало полезной информации о загрузке непосредственно в Nginx через cURL.
Текущий технический стек:
- Nginx
- Зеленый единорог
- Flask
Из всех различных способов, которые я пробовал, следующий кажется наиболее подходящим для этой задачи.
curl -X POST -F "image=@example.gif" http://54.226.64.199/upload
Однако ответ не вызывает восторга.
Я также пробовал —uploade-file, ответ — 405. Из того, что я прочитал, upload принимает только команду POST, а не PUT, поэтому я получаю 405.
Мне не нужно полное решение (было бы здорово!), Только указывающее в правильном направлении.
Любая помощь приветствуется. Спасибо
РЕДАКТИРОВАТЬ: извините, хотел включить часть моего .conf
location /upload {
upload_store /tmp;
#upload_pass @none;
upload_store_access all:rw;
upload_cleanup 400 404 499 500-505;
}
Комментарии:
1. .. также распечатайте журналы ошибок nginx
2. Эй, короче говоря, я делал это неправильно. Вместо того, чтобы пытаться загрузить через Nginx, я загрузил через Flask. flask.pocoo.org/docs/1.0/patterns/fileuploads
3. @Nashlufy: Не могли бы вы опубликовать свое открытие в качестве ответа? Я борюсь с той же проблемой. Не удается найти команду cURL для отправки в NGINX.
Ответ №1:
Вы можете сделать это, указав filename в URL, без использования какого-либо внешнего модуля :
location ~ "/upload/([0-9a-zA-Z-.]*)$" {
alias /storage/www/upload/$1;
client_body_temp_path /tmp/upload_tmp;
dav_methods PUT DELETE MKCOL COPY MOVE;
create_full_put_path on;
dav_access group:rw all:r;
}
И использовать: curl -T example.gif http://54.226.64.199/upload/example.gif