shell 如果文件大小>2 GB,则Curl无法发布文件

ecfdbz9o  于 2023-03-24  发布在  Shell
关注(0)|答案(1)|浏览(195)

我试图发布文件的大小〉2 GB和curl命令失败与内存不足的错误。

curl:option --data-urlencode: out of memory

我正在使用的 curl 命令:

curl -X POST -k --header 'content-type: application/x-www-form-urlencoded' \
    --header accept: text/csv --data-urlencode 'form_id=' 12 \
    --data-urlencode 'list_id=' 25 --data-urlencode 'file_name@' list.csv \
    https://example.com
oxcyiej7

oxcyiej71#

--data-urlencode将把2GB数据加载到内存缓冲区中,然后将其URL编码到新的内存缓冲区中进行编码,这意味着它需要〉4GB的内存进行此操作。
curl的未来增强可能是(使其检测到巨大的大小并)切换到流式方法。
一个解决方法是“手动”呈现一个URL编码的文件(包含要发送到服务器的完整内容),然后使用-X POST -T file

相关问题