Я пытаюсь выполнить многостраничную загрузку формы с помощью «запросов» в python. Я могу загрузить файл, но он никогда не загружает дополнительные поля, которые обычно передаются через флаг -F с curl. Локон команда, которую я пытаюсь подражать:curl to requests conversion python -F flag
curl -v -u user:password -X POST -F 'properties={"filename":"maurizio.png"}' -F "[email protected]" 192.168.59.103:8080/testdb/mybucket.files
Код запросов:
url = "http://192.168.59.103:8080/testdb/mybucket.files"
content_type = "multipart/form-data"
params = {"filename":"maurizio.png"}
params["_id"] = "test_hash_1234"
data = open('maurizio.png','rb').read()
files = {'file': ('maurizio.png',data,content_type,params)}
request = requests.post(url,files=files,auth=('user','password'))
Этот файл загружается в restheart API для MongoDB. «_id» - это специальный идентификатор объекта, который база данных использует для ссылки на объект. Мне нужно указать это поле документа в дополнение к другим полям документа, таким как имя файла. Файл загружается в хранилище blob-файлов Mongo, называемое gridfs. Я могу загрузить данные и дополнительные поля документа с помощью curl, но вышеприведенный код «запросы» загружает только данные, а не дополнительные поля документа. Мне нужны эти дополнительные поля для запросов. Может ли кто-нибудь помочь мне преобразовать флаг -F во что-то, что эквивалентно модулю запросов python?
Спасибо!