Кончился. Мир праху.
На досуге решил проверить, правду ли брешут, что cURL может справится с восстановлением upload-а (resumable upload).
Настроил Apache + mod_dav, ибо он уж почти десять лет поддерживает заголовки Content-Range совокупно с методом PUT, и стал экспериментировать.
Врут, собаки. cURL может корректно сформировать заголовки и, конкретно, Content-Range. Но он не может залить на сервер кусок файла согласно этим заголовкам, льет файл либо с начала, либо начиная с указанной отметки, но всегда до конца файла а не до конца куска. Apache же, при имитировании сетевого сбоя, удаляет весь недозалитый файл. Типа сбой транзакции.
Что поделать, селяви. Проверено - Resumable uploads with chunks нельзя сделать по простому.
Можно сделать посложнее. Взять Python и самому формировать запросы PUT в сочетании с нужными заголовками. Плюс обвязка на проверку результатов и обработку запроса HEAD (наличие и размер файла на сервере нужно узнать сперва) — и аплоад чанками на скорую руку готов. На сервере Apache + mod_dav.
- ics.uci.edu/~ejw/authoring/implementation
- stackoverflow.com/questions/111945/is-there-any-way-to-do-http-put-in-python
- inamidst.com/proj/put/put.py
-
$ curl -v -C 301 -T /home/v/ie8.vmdk --url http://t.home.net:8000/vwebdav/
спасибо, полезно.
ОтветитьУдалитьТема (resumable upload) вообще благодатная, даже удивительно, что до сих пор нет решения на уровне платформы. Гугель для себя сделал решение и выложил предложение дополнить HTTP. Но рядовым разрабам это недоступно. Была у меня надежда, что WebDAV поможет, но, как видно - нет.
ОтветитьУдалитьКаждый этот велосипед изобретает сам, я, к примеру, в свободное время выращиваю решение для Zope.