У меня есть следующая команда curl:
curl -X POST "_my_username_:_my_password_@10.2.25.209:5601/api/saved_objects/_import" -H "kbn-xsrf: true" --form file=@V:kibana\IndexPatterns\events.ndjson
, которая прекрасно работает (импортировать шаблон индекса вasticsearch), но я пытаюсь преобразовать его в Python запросы. Я пробовал несколько способов, включая следующие:
files = {'file': '@' + args.kibana_index_pattern_path}
res = requests.post("http://{0}:{1}@{2}:5601/api/saved_objects/_import".format(args.elastic_username, args.elastic_password, args.kibana_host),
headers={'kbn-xsrf': 'true'}, data=files)
files = {'file': '@' + args.kibana_index_pattern_path}
res = requests.post("http://{0}:{1}@{2}:5601/api/saved_objects/_import".format(args.elastic_username, args.elastic_password, args.kibana_host),
headers={'kbn-xsrf': 'true', 'Content-Type': 'text/plain'}, files=files)
С различными комбинациями с или без @
, файлы в виде одной строки вместо словаря, т. Д. Я продолжаю получать сообщения об ошибках и недопустимых типах содержимого (например: {'message': 'Unsupported Media Type', 'error': 'Unsupported Media Type', 'statusCode': 415}).
Обратите внимание, что есть некоторые инструменты для преобразования curl в запросы, но все те, которые я пробовал, не распознают параметр файла, игнорируя его или выбрасывая исключение. Однако сама команда работает.
Что я здесь не так делаю?