Я извиняюсь прямо здесь ... Я HTTP noob ... но мне нужно создать скрипт python, который берет файл и загружает его на сервер в кусках, включая дополнительные данные.Python: Загрузите файл в chunk на сервер, включая дополнительные поля
EDIT: Это только один файл, который я хочу, чтобы загрузить ... но на куски
Так что я начал исследовать и наткнулся на pycurl
, который, кажется, довольно сложно. Поэтому я пошел на requests
, который выглядит очень красиво и интуитивно.
И в основном я получил это работает в части ... но ... не все это в сочетании :)
Я видел, что я могу использовать генераторы для обеспечения ломти моих данных. Это потрясающе! Но мне также нужно отправить (извините ... мой словарь, когда дело доходит до такого рода материалов, очень ограничен). Другие поля, которые содержат информацию в формате JSON ...
Так что мои запросы должны выглядеть примерно так:
POST/HTTP/1.1
Host: some server
Content-Type: multipart/form-data;
Connection: Keep Alive
Transfer-Encoding: chunked
--boundary
Content-Disposition: form-data; name="Name of my field"
Content-Type: application/JSON; charset=utf-8
Content-Transfer-Encoding: 8bit
{"Some" : "content", "in" : "here"}
--boundary
Content-Disposition: form-data; name="My File"
Content-Type: audio/mpeg
Content-Transfer-Encoding: binary
... chunk 1 ....
--boundary
Content-Disposition: form-data; name="My File"
Content-Type: audio/mpeg
Content-Transfer-Encoding: binary
... chunk 2 ....
and so on...
Я понял, что я могу создать Chunked загрузку с помощью генератора. И я также подумал, что могу создать не-файловые границы, используя опцию file=
.
Но проблема в том, что я не могу использовать оба :(А также при использовании моего genrator я не могу определить Ф.Э. Content-Type
моих кусков, ни имя ...
Опять ... извините за мой плохой словарный запас :)
Любая помощь очень ценится
Я не очень понимаю, как это поможет мне? Потому что содержание в вашем примере 'doc.txt' и' doc2.html' не загружается в куски ... Я бы хотел определить, сколько байтов должно быть у каждого байта этих файлов ... – Georg