我已准备好通过CURL将大量JSON数据发布到数据库。但是数据库要求以某种方式格式化JSON的开头和结尾。为了不通过进入每个文件和前置和附加行来调整文件的巨大数据集...我想在文件的命令行上简单地指定附加的开始和结束文本。我不认为通过脚本编辑文件是犹太教的解决方案,直接搞乱这种原始数据流感觉不对。
相反,我发现以下mashup是一个很好的方法来实现这个目标:
curl -d "prepend_string`cat filename.json`append_string" \
-X POST http://localhost:5984/database/_bulk_docs \
-H "Content-Type: application/json"
但是这有其局限性,因为在上面的场景中,所有数据都从文件进入命令行然后发布。由于真实文件非常大,任何人都会遇到如下错误:
-bash: /opt/local/bin/curl: Argument list too long
因此,对于CURL,是否有可能将cmd行和文件数据混合在一起,以便它们成功发布(通过curl),就像在三个单独的部分中一样?
#(this is make believe syntax)
-d "prepend_string" + @filename.json + "append_string"
答案 0 :(得分:3)
使用-d @filename
从单个文件中读取:
curl www.example.com -d @mypostdata.txt
或使用标准输入:
echo "Beginning"$(cat mypostdata.txt)"End" | curl www.example.com -d -
或使用命名管道......