无法通过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 (将#修改为@)