我正在使用 curl 将大文件(从 5 到 20Gb)上传到箍基于HDFS(Hadoop Cluster)如下:
curl -f --data-binary "@$file" "$HOOP_HOST$UPLOAD_PATH?user.name=$HOOP_USER&op=create"
但是当 curl 上传大型文件时,它会尝试将其完全缓存在 RAM 中,这会产生高内存负载。我尝试使用应该禁用缓冲-N
的标志man curl
。但什么也没发生。所以我的问题是,有没有办法强制 curl 直接写入套接字,或者您能否建议我另一个可以满足我对简单 HTTP POST/PUT 请求的需求的实用程序。
我不想自己写它,因为它看起来就像发明一辆自行车。谢谢。
答案1
遗憾的是,据 Daniel Stenberg 称,目前还不可能实现。
答案2
cat myfile.csv | curl -X PUT -T - -H 'content-type:text/csv' http://localhost
确实有效。