使用Curl数据二进制选项,内存不足

mfa*_*aiz 10 bash shell curl google-api

我正在尝试使用curl来上传数据。我需要上传二进制数据。

不幸的是,我认为curl首先将文件二进制文件加载到内存中,因此对于大文件来说这是一个问题。我使用的系统的可用内存非常少,因此即使是 8mb 大的文件也很困难,我得到:

curl: option --data-binary: out of memory
curl: try 'curl --help' for more information
Run Code Online (Sandbox Code Playgroud)

我尝试过分块选项,但这似乎也不起作用。

到目前为止,这就是我正在尝试的:

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
Run Code Online (Sandbox Code Playgroud)

有没有办法可以阻止文件将二进制文件加载到内存中或强制其将此数据存储在 SD 卡中并从那里读取数据?

Pos*_*shi 12

内存不足的原因是 --data 及其朋友在将数据发送到服务器之前都将数据读入内存。您可以通过执行 -T -X POST 轻松解决这个问题,但我仍然相信您在最初的 -F 测试中已经出错了。

来自: https: //github.com/curl/curl/issues/1385