'非法base64字符'从shell脚本索引elasticsearch中的pdf时出现异常

时间:2016-11-21 12:32:04

标签: unix elasticsearch

我安装了带有摄取附件的elasicsearch 5.0.1,并尝试使用下面的命令从shell脚本中的elasticsearch索引pdf

#!/bin/ksh  
var=$(base64 sample.pdf | perl -pe 's/\n/\\n/g')
var1=$(curl -XPUT 'http://localhost:9200/my_index5/my_type/my_id?pipeline=attachment&pretty' -d' { "data" : "'$var'" }')
echo $var1

出现错误

{ "error" : { "root_cause" : [ { "type" : "exception", "reason" : "java.lang.IllegalArgumentException: ElasticsearchParseException[Error parsing document in field [data]]; nested: IllegalArgumentException[Illegal base64 character a];", "header" : { "processor_type" : "attachment" } } ]

任何人都可以帮助解决上述错误

1 个答案:

答案 0 :(得分:0)

纠正错误。 导致此错误的原因是,在base64编码的内容中存在\ n,导致"非法格式异常"。 作为一种解决方案,当尝试如下工作时

var=$(base64 sample.pdf | perl -pe 's/\n//g')