使用Curl的--data-urlencode上传大于2GB文件时内存不足报错
解决curl上传大文件时内存不足的问题
问题原因
使用--data-urlencode参数上传大文件时,curl会将整个文件的内容加载到内存中进行URL编码处理。当文件大小超过2GB时,内存无法容纳整个文件,就会触发curl:option --data-urlencode: out of memory错误。
解决方案
改用-F(--form)参数上传,该参数采用multipart/form-data格式传输数据,会分块读取文件内容,不会一次性加载整个文件到内存,完全适配大文件上传场景。
修正后的curl命令
curl -X POST -k --header 'accept: text/csv' \ -F 'form_id=12' \ -F 'list_id=25' \ -F 'file_name=@list.csv' \ https://example.com
说明
-F参数会自动设置正确的Content-Type为multipart/form-data,无需手动指定原命令中的application/x-www-form-urlencoded- 表单字段(
form_id、list_id)和文件字段(file_name)都通过-F传递,格式为字段名=值或字段名@文件名 - 这种分块上传的方式可以有效避免内存不足问题,支持任意大小的文件上传
内容的提问来源于stack exchange,提问作者sandy
相关产品推荐
相关产品推荐

