I usually want upload form named pipe, when transloading files from one filehost to another and I have only few disk space on my VPS to download files fully at first and then upload them.
However I often get "curl: (55) Send failure / broken pipe" error message when uploading from named pipe.
The pipe is fed by ffmpeg, but I got same experiences when the pipe is fed by bsdtar. I upload to depositfiles.com .
Error message always appears at position when 40 MB of data has been uploaded. I also tried to pass a http header field - H "Transfer-Encoding: Chunked" and ordinary pipe instead of named one but no success, I experienced a broken pipe error always at ~40 MB of data.
On the producer side of the pipe:
ffmpeg -i http://example.com/file.mkv -map_chapters -1 video.mkv
On the consumer side:
curl -b cookie-file -F "email@example.com;filename=video.mkv" -F 'format=html5' -F "member_passkey=XXXXXXXdv8yfw2w" -F 'fm=_root' -F 'fmh=' "http://fileshare1301.dfiles.eu/upload/FS130-5u/"
What can I do to avoid such annoyances, and make the pipe / uploading intact?
curl's formpost logic doesn't support reading from a pipe but must be able to get the size before the transfer starts, afair. I could very well be fixed to support "Transfer-Encoding: Chunked" (if the server isn't HTTP1.0) but it isn't right now. Patches very welcome. Right now, this issue should be fixed by properly documenting this limitation.
docs: formpost needs the full size at start of upload