Автор Тема: Как получить большой файл частями?  (Прочитано 4547 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн lamerz

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как получить большой файл частями?
« : 08 Февраля 2007, 14:06:03 »
Как получить большой файл с сервера на сервер частями?

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Как получить большой файл частями?
« Ответ #1 : 08 Февраля 2007, 15:28:12 »
если сервер поддерживает -- chunked read

Оффлайн andymc

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 400
  • +1/-0
  • 0
    • Просмотр профиля
Как получить большой файл частями?
« Ответ #2 : 08 Февраля 2007, 23:39:15 »
Так и хочется сказать
Цитировать
я бы взял частями, но мне нужно сразу

Оффлайн lamerz

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как получить большой файл частями?
« Ответ #3 : 15 Февраля 2007, 11:22:38 »
Так и хочется сказать форум отстой, не одного нормального совета или решиния, кроме perldoc Ж)

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Как получить большой файл частями?
« Ответ #4 : 15 Февраля 2007, 11:30:24 »
если вам это не помогло -- это ваши проблемы.

Оффлайн lamerz

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как получить большой файл частями?
« Ответ #5 : 15 Февраля 2007, 11:34:58 »
"я бы взял частями, но мне нужно сразу"

да это сильно мне помогло:)

Оффлайн nacsa

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как получить большой файл частями?
« Ответ #6 : 15 Февраля 2007, 14:54:17 »
может это поможет:


Доставка больших документов

1-й вариант. Записываем данные в процессе скачивания в файл

use LWP::UserAgent;
$ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => \'http://www.linpro.no/lwp/libwww-perl-5.46.tar.gz\');
$res = $ua->request($req, "libwww-perl.tar.gz");
if ($res->is_success) {
         print "ok\\n";
}else{
         print $res->status_line, "\\n";
}

2-й вариант. Вставка контролирующей подпрограммы в качестве второго аргумента $ua->request(). В этом варианте можно записывать скачиваемый файл по кусочкам, чтобы в случае обрыва связи потом его докачать.

use LWP::UserAgent;
$ua = LWP::UserAgent->new;
$URL = \'ftp://ftp.unit.no/pub/rfc/rfc-index.txt\';
my $expected_length;
my $bytes_received = 0;
my $res =$ua->request(HTTP::Request->new(GET => $URL),
                 sub {
                         my($chunk, $res) = @_;
                         $bytes_received += length($chunk);
                         unless (defined $expected_length) {
                                 $expected_length = $res->content_length || 0;
                         }
                         if ($expected_length) {
                                 printf STDERR "%d%% - ",
                                 100 * $bytes_received / $expected_length;
                 }
                         print STDERR "$bytes_received bytes received\\n";
                         # В $chunk - текущие данные
                         # print $chunk;
                 }
);
print $res->status_line, "\\n";

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28