скачка файла с ограничением по размеру

49 views
Skip to first unread message

Mike Mushu

unread,
Jul 21, 2016, 1:09:30 PM7/21/16
to Golang Russian
Добрый день коллеги, прошу поделиться примером или вектором куда рыть.
Печаль в следующем, хочу поставить ограничение на скачку файла, Если сервак отдает информацию в Content-Length по протоколу HTTP/HTTPS 
length, _ := strconv.Atoi(res.Header.Get("Content-Length"))
то проблем нет, а вот если сервак не отдает данный параметр, то я не как не могу найти в каком месте задать ограничение.

Я так понимаю нужна обертка или клозури на данный метод  http.Get(urls)

Mykhailo Tsiuptsiun

unread,
Jul 21, 2016, 1:32:47 PM7/21/16
to Golang Russian
Привет.
Если задача стоит прочитать весь response.Body, то используй https://golang.org/pkg/io/ioutil/#ReadAll
Пример в начале страницы https://golang.org/pkg/net/http/


чт, 21 июл. 2016 г. в 20:09, Mike Mushu <mr.m...@gmail.com>:
--
Вы получили это сообщение, поскольку подписаны на группу "Golang Russian".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес golang-ru+...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Oleg Bulatov

unread,
Jul 21, 2016, 1:37:36 PM7/21/16
to Golang Russian
Предварительно можно обернуть в https://golang.org/pkg/io/#LimitedReader

Mike Mushu

unread,
Jul 22, 2016, 7:23:11 AM7/22/16
to gola...@googlegroups.com
Спасибо большое, а правильно понял что в response.Body уже находиться скачанный фаил ? Если да то мне как раз на response.Body нужно поставить лимит при превышение которого прекратилась скачка файла.

21 июля 2016 г., 20:37 пользователь Oleg Bulatov <dmag...@gmail.com> написал:
Предварительно можно обернуть в https://golang.org/pkg/io/#LimitedReader
--
Вы получили это сообщение, поскольку подписаны на группу Golang Russian.

Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес golang-ru+...@googlegroups.com.
Настройки подписки и доставки писем: https://groups.google.com/d/optout.



--
С уважением, Константин.

Oleg Bulatov

unread,
Jul 22, 2016, 8:43:37 AM7/22/16
to Golang Russian
Не совсем, там находится io.ReadCloser, который читает данные из сокета. Но не стоит забывать про буфер TCP сокета, который может быть несколько мегабайт.

Mike Mushu

unread,
Jul 27, 2016, 5:41:22 AM7/27/16
to gola...@googlegroups.com
Спасибо большое, разобрался. мне нра через io.ReadCloser

22 июля 2016 г., 15:43 пользователь Oleg Bulatov <dmag...@gmail.com> написал:
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.



--
С уважением, Константин.
Reply all
Reply to author
Forward
0 new messages