bash - 使用 Curl 数据二进制选项,内存不足
问题描述
我很想使用 curl 上传数据。我需要上传二进制数据。
不幸的是,我认为 curl 首先将文件二进制文件加载到内存中,因此对于大文件来说这是一个问题。我正在使用的系统只有非常少量的可用内存,因此即使是 8mb 大的文件也在挣扎,我得到:
curl: option --data-binary: out of memory
curl: try 'curl --help' for more information
我已经尝试过分块选项,但这似乎也不起作用。
到目前为止,这是我正在尝试的:
curl --insecure -v --max-time 1200 ... --data-binary @/tmp/sd/record/....mp4 --header Transfer-Encoding: chunked -o UPLOAD_TOKEN -D Media_Binary_Data https://....upload
有没有办法可以阻止文件将二进制文件加载到内存中或强制它将这些数据存储在 sd 卡中并从那里读取?
解决方案
内存不足的原因是 --data 及其朋友在将数据发送到服务器之前都将数据读入内存。你可以通过 -T -X POST 轻松解决这个问题,但我仍然相信你在最初的 -F 测试中已经出错了。