Назад | Перейти на главную страницу

Загружайте большие файлы с помощью curl без кеша RAM.

Я использую curl для загрузки больших файлов (от 5 до 20 ГБ) в Обруч на основе HDFS (Hadoop Cluster) следующим образом:

curl -f --data-binary "@$file" "$HOOP_HOST$UPLOAD_PATH?user.name=$HOOP_USER&op=create"

Но когда curl загружает большой файл, он пытается полностью кэшировать его в ОЗУ, что приводит к высокой загрузке памяти. Я пытался использовать -N флаг от man curl который должен отключить буферизацию. Но ничего не произошло. Итак, мой вопрос: есть ли способ принудительно записать curl напрямую в сокет, или не могли бы вы посоветовать мне другое приложение, которое покроет мои потребности в простых запросах HTTP POST / PUT.

Я не буду писать это сам, потому что это похоже на изобретение велосипеда. Спасибо.

К сожалению, по словам Даниэля Стенберга, в настоящее время это невозможно.

Видеть https://github.com/bagder/curl/issues/290