如何解决无法通过python REST API在Elasticsearch中存储二进制文件
我创建了类似Elaticsearch的索引
输入new_index_blob > { >“映射”:{ >“属性”:{ >“名称”:{ >“类型”:“文本” >}, >“斑点”:{ >“类型”:“二进制”, >“商店”:为true >} >} >} >}
当我尝试从Kibana的Dev Tools中存储Base64编码的二进制值时,如下所示,它工作正常
输入new_index_blob / _doc / 1 { “ name”:“测试”, “ blob”:“ U29tZSBiaW5hcnkgYmxvYg ==” }
我可以从开发工具中获取/搜索相同的内容
GET /new_index_blob/_source/1
但是当我尝试使用python REST API存储相同内容时,在代码段下面,它不起作用,也没有给出任何错误
path = "C:\\Users\\Administrator\\Desktop\\My_Folder\\"
name= "100.97.16.31_2020_Jul_17_09_14.zip" # 53 Mb
zip_file_path = os.path.join(path,name)
elastic_url= "http://%s/%s/%s"%(
"localhost:9200","new_index_blob","_doc/2"
)
try:
data = open(zip_file_path,"rb").read()
encoded = str(base64.b64encode(data))
upload_data={}
upload_data["name"]=name
upload_data["blob"]=encoded
except Exception as e:
print(str(e))
try:
resp_elastic = requests.put(
elastic_url,headers=headers,data=json.dumps(upload_data),verify=False
)
print("ES Entry completed for {}".format(name))
except Exception as e:
print(e)
我在做什么错。同样,即使从Dev Tools插入后,文档计数仍显示为0,对于具有存储true的数据类型二进制文件
,还是可以预期的吗?版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。