многопоточный download

Браузеру, почта, IP-телефония и т.п.

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

многопоточный download

Непрочитанное сообщение Olej » 25 дек 2023, 18:21

Образы файлов (например ISO) становятся всё больше и больше.
Ждать всё дольше и дольше... :cry:
Особенно вопрос возник при скачивании имиджей диска вот этого форума: локальные инсталляции форума ... закачка каждый раз продолжается много часов :evil:

Можно ли многопоточно увеличить скорость загрузки ... в этом случае, и вообще :?:

P.S. Меня интересуют только те инструменты (из их великого множества) которые присутствуют в стандартных репозиториях дистрибутивов Linux.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

многопоточный download

Непрочитанное сообщение Olej » 25 дек 2023, 18:27

Olej писал(а):
25 дек 2023, 18:21
Можно ли многопоточно увеличить скорость загрузки
Многопоточное скачивание файла для Linux
Axel - утилита для загрузки файлов с улучшенной скоростью и поддержкой
Axel - это утилита для загрузки, которая призвана улучшить процесс загрузки за счет эффективного использования нескольких соединений для одного файла. Созданная командой талантливых разработчиков, Axel позволяет увеличить скорость загрузки до 60%.
Одной из ключевых особенностей Axel является широкая поддержка различных протоколов, включая HTTP/HTTPS, FTP и FTPS. Такая гибкость позволяет пользователям загружать файлы из различных источников, обеспечивая совместимость с широким спектром вариантов загрузки.
Aria2
Это утилита для загрузки файлов. Поддерживаемые протоколы: HTTP(S), FTP, BitTorrent и Metalink.
...
Особенности aria2
- Высокая степень настраиваемости: aria2 предлагает широкий спектр возможностей настройки под конкретные нужды. Вы можете определить количество соединений, ограничения скорости загрузки и многое другое.
- Возобновление и повторная попытка: Если ссылка на скачивание или соединение обрывается в процессе загрузки, aria2 может автоматически возобновить загрузку с того места, где она закончилась.
- Проверка целостности файла: в aria2 предусмотрена функция проверки целостности загружаемого файла. Это гарантирует, что файл не был поврежден в процессе загрузки.
- Безопасные соединения: aria2 поддерживает безопасные соединения, такие как HTTPS и FTPS. Это позволяет защитить скачиваемые файлы от подслушивания и несанкционированного доступа.
- Поддержка торрентов: Помимо загрузки файлов по протоколу HTTP, aria2 также поддерживает загрузку торрентов. Это позволяет эффективно загружать большие файлы с сайтов-трекеров.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

многопоточный download

Непрочитанное сообщение Olej » 26 дек 2023, 02:32

Началось тестирование GNU Wget 2
06.09.2019 22:24
Доступен тестовый выпуск GNU Wget 2, полностью переработанного варианта программы для автоматизации рекурсивной загрузки контента GNU Wget. GNU Wget 2 спроектирован и переписан с нуля и примечателен выносом базовой функциональности web-клиента в библиотеку libwget, которая может обособленно применяться в приложениях. Утилита поставляется под лицензией GPLv3+, а библиотека под LGPLv3+.

Wget 2 переведён на многопоточную архитектуру, поддерживает HTTP/2, сжатие zstd, распараллеливание запросов и учёт HTTP-заголовка If-Modified-Since, что позволяет добиться значительного увеличения скорости загрузки, по сравнению с веткой Wget 1.x. Из особенностей новой версии также можно отметить поддержку протокола OCSP (Online Certificate Status Protocol), TLS 1.3, режим быстрого открытия TCP-соединений (TCP FastOpen) и возможность использования GnuTLS, WolfSSL и OpenSSL в качестве бэкендов для TLS.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

многопоточный download

Непрочитанное сообщение Olej » 26 дек 2023, 02:35

Olej писал(а):
25 дек 2023, 18:27
Axel

Код: Выделить всё

olej@R420:~$ aptitude search axel
p   axel                                                               - распараллеливание загрузки файлов (консольная версия)

Код: Выделить всё

olej@R420:~$ aptitude show axel
Пакет: axel
Версия: 2.17.11-1
Новый: да
Состояние: не установлен
Приоритет: необязательный
Раздел: universe/web
Сопровождающий: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Архитектура: amd64
Размер в распакованном виде: 204 k
Зависит: libc6 (>= 2.34), libssl3 (>= 3.0.0~~alpha1)
Описание: распараллеливание загрузки файлов (консольная версия)
 Axel пытается ускорить процесс загрузки одного файла распараллеливанием на несколько соединений, подобно DownThemAll и другим популярным программам.
 Также для загрузки можно использовать несколько зеркал.

 Используя Axel, вы будете быстрее получать файлы из Интернета. Axel может увеличить скорость загрузки до 60% (приблизительно, в соответствии с
 некоторыми тестами).

 Axel поддерживает протоколы HTTP, HTTPS, FTP и FTPS.

 При разработке программы делается упор на минимизацию использования ресурсов, потому её можно использовать вместо wget в системах с ограниченными
 ресурсами.
Домашняя страница: https://github.com/axel-download-accelerator/axel

Код: Выделить всё

olej@R420:~$ sudo apt install axel
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово
Следующие НОВЫЕ пакеты будут установлены:
  axel
Обновлено 0 пакетов, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 58,7 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 204 kB.
Пол:1 http://ubuntu.volia.net/ubuntu-archive jammy/universe amd64 axel amd64 2.17.11-1 [58,7 kB]
Получено 58,7 kB за 0с (193 kB/s)
Выбор ранее не выбранного пакета axel.
(Чтение базы данных … на данный момент установлен 583651 файл и каталог.)
Подготовка к распаковке …/axel_2.17.11-1_amd64.deb …
Распаковывается axel (2.17.11-1) …
Настраивается пакет axel (2.17.11-1) …
Обрабатываются триггеры для man-db (2.10.2-1) …

Код: Выделить всё

olej@R420:~$ axel --help
Axel 2.17.11 (linux-gnu)
Usage: axel [options] url1 [url2] [url...]

--max-speed=x           -s x    Specify maximum speed (bytes per second)
--num-connections=x     -n x    Specify maximum number of connections
--max-redirect=x                Specify maximum number of redirections
--output=f              -o f    Specify local output file
--search[=n]            -S[n]   Search for mirrors and download from n servers
--ipv4                  -4      Use the IPv4 protocol
--ipv6                  -6      Use the IPv6 protocol
--header=x              -H x    Add HTTP header string
--user-agent=x          -U x    Set user agent
--no-proxy              -N      Just don't use any proxy server
--insecure              -k      Don't verify the SSL certificate
--no-clobber            -c      Skip download if file already exists
--quiet                 -q      Leave stdout alone
--verbose               -v      More status information
--alternate             -a      Alternate progress indicator
--percentage            -p      Print simple percentages instead of progress bar (0-100)
--help                  -h      This information
--timeout=x             -T x    Set I/O and connection timeout
--version               -V      Version information

Visit https://github.com/axel-download-accelerator/axel/issues to report bugs

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

многопоточный download

Непрочитанное сообщение Olej » 26 дек 2023, 02:38

Olej писал(а):
25 дек 2023, 18:27
Aria2

Код: Выделить всё

olej@R420:~$ aptitude search aria2
p   aria2                                                              - менеджер загрузки файлов
p   libaria2-0                                                         - C++ library interface to aria2
p   libaria2-0-dev                                                     - High speed download utility (Development files)

Код: Выделить всё

olej@R420:~$ aptitude show aria2
Пакет: aria2
Версия: 1.36.0-1
Новый: да
Состояние: не установлен
Приоритет: необязательный
Раздел: universe/net
Сопровождающий: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Архитектура: amd64
Размер в распакованном виде: 1.898 k
Зависит: libaria2-0 (>= 1.36.0), libc6 (>= 2.34), libgcc-s1 (>= 3.0), libstdc++6 (>= 5.2)
Рекомендует: ca-certificates
Описание: менеджер загрузки файлов
 Aria2 is a command line download client with resuming and segmented downloading. Supported protocols are HTTP/HTTPS/ SFTP/FTP/BitTorrent and it also
 supports Metalink.
Домашняя страница: https://aria2.github.io/

Код: Выделить всё

olej@R420:~$ sudo apt install aria2
[sudo] пароль для olej:
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  libaria2-0
Следующие НОВЫЕ пакеты будут установлены:
  aria2 libaria2-0
Обновлено 0 пакетов, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 1.468 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 5.326 kB.
Хотите продолжить? [Д/н] y
Пол:1 http://ubuntu.volia.net/ubuntu-archive jammy/universe amd64 libaria2-0 amd64 1.36.0-1 [1.086 kB]
Пол:2 http://ubuntu.volia.net/ubuntu-archive jammy/universe amd64 aria2 amd64 1.36.0-1 [381 kB]
Получено 1.468 kB за 1с (1.533 kB/s)
Выбор ранее не выбранного пакета libaria2-0:amd64.
(Чтение базы данных … на данный момент установлено 583583 файла и каталога.)
Подготовка к распаковке …/libaria2-0_1.36.0-1_amd64.deb …
Распаковывается libaria2-0:amd64 (1.36.0-1) …
Выбор ранее не выбранного пакета aria2.
Подготовка к распаковке …/aria2_1.36.0-1_amd64.deb …
Распаковывается aria2 (1.36.0-1) …
Настраивается пакет libaria2-0:amd64 (1.36.0-1) …
Настраивается пакет aria2 (1.36.0-1) …
Обрабатываются триггеры для man-db (2.10.2-1) …
Обрабатываются триггеры для libc-bin (2.35-0ubuntu3.5) …

Код: Выделить всё

olej@R420:~$ apt content aria2
/.
/usr
/usr/bin
/usr/bin/aria2c
/usr/share
/usr/share/doc
/usr/share/doc/aria2
/usr/share/doc/aria2/bash_completion
/usr/share/doc/aria2/bash_completion/aria2c.gz
/usr/share/doc/aria2/bash_completion/README.txt
/usr/share/doc/aria2/changelog.Debian.gz
/usr/share/doc/aria2/copyright
/usr/share/doc/aria2/NEWS.gz
/usr/share/doc/aria2/README
/usr/share/doc/aria2/README.html
/usr/share/doc/aria2/README.rst.gz
/usr/share/doc/aria2/xmlrpc
/usr/share/doc/aria2/xmlrpc/aria2mon.gz
/usr/share/doc/aria2/xmlrpc/aria2rpc.gz
/usr/share/doc/aria2/xmlrpc/README.txt
/usr/share/locale
/usr/share/locale/ar
/usr/share/locale/ar/LC_MESSAGES
/usr/share/locale/ar/LC_MESSAGES/aria2.mo
...

Код: Выделить всё

olej@R420:~$ aria2c --help
Использование: aria2c [OPTIONS] [URI | MAGNET | TORRENT_FILE | METALINK_FILE]...
Вывод параметра с меткой '#basic'.
Смотрите 'aria2c -h#help', чтобы узнать о всех доступных метках.
Параметры:
 -v, --version                Вывести номер версии и выйти.

                              Метки: #basic

 -h, --help[=TAG|KEYWORD]     Вывести справку по использованию и выйти.
                              Справочное сообщение определяется метками (TAG).
                              Метки начинаются с "#". Например, "--help=#http"
                              выведет справку по параметрам, помеченным меткой "#http".
                              Если задать слово, не являющееся меткой, то будет
                              выведена справка по параметрам, содержащим это слово.
...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

многопоточный download

Непрочитанное сообщение Olej » 26 дек 2023, 02:39

Olej писал(а):
26 дек 2023, 02:32
Wget 2

Код: Выделить всё

olej@R420:~$ aptitude search wget
p   libcupt4-2-downloadmethod-wget                                                   - flexible package manager -- wget download method
p   libwget0                                                                         - Download library for files and recursive websites
p   pwget                                                                            - downloader utility which resembles wget (implemented in Perl)
p   python3-wget                                                                     - pure Python download utility for Python 3
i   wget                                                                             - загрузка файлов из сети
p   wget:i386                                                                        - загрузка файлов из сети
p   wget2                                                                            - file and recursive website downloader
p   wget2-dev                                                                        - development file for libwget2

Код: Выделить всё

olej@R420:~$ sudo apt install wget2
[sudo] пароль для olej:
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  libwget0
Следующие НОВЫЕ пакеты будут установлены:
  libwget0 wget2
Обновлено 0 пакетов, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 239 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 643 kB.
Хотите продолжить? [Д/н] y
Пол:1 http://ubuntu.volia.net/ubuntu-archive jammy/universe amd64 libwget0 amd64 1.99.1-2.2 [143 kB]
Пол:2 http://ubuntu.volia.net/ubuntu-archive jammy/universe amd64 wget2 amd64 1.99.1-2.2 [95,8 kB]
Получено 239 kB за 1с (408 kB/s)
Выбор ранее не выбранного пакета libwget0.
(Чтение базы данных … на данный момент установлено 583673 файла и каталога.)
Подготовка к распаковке …/libwget0_1.99.1-2.2_amd64.deb …
Распаковывается libwget0 (1.99.1-2.2) …
Выбор ранее не выбранного пакета wget2.
Подготовка к распаковке …/wget2_1.99.1-2.2_amd64.deb …
Распаковывается wget2 (1.99.1-2.2) …
Настраивается пакет libwget0 (1.99.1-2.2) …
Настраивается пакет wget2 (1.99.1-2.2) …
Обрабатываются триггеры для man-db (2.10.2-1) …
Обрабатываются триггеры для libc-bin (2.35-0ubuntu3.5) …

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

многопоточный download

Непрочитанное сообщение Olej » 26 дек 2023, 02:44

Olej писал(а):
25 дек 2023, 18:21
Особенно вопрос возник при скачивании имиджей диска вот этого форума
Опытная проверка всех этих, и ещё некоторых, инструментов - даёт ответ: НЕТ.
И не потому что инструменты плохи (это надо отдельно проверять, на сколько % можно добиться ускорения) ... а потому что все эти облачные хранилища (все Google, и Yandex, и MEGA ... и все-все-все) дают в качестве ссылки не ссылку на файл, а ссылку на некоторые HTML фрагмент, который запускаясь скачивает файл.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

многопоточный download

Непрочитанное сообщение Olej » 26 дек 2023, 18:18

Olej писал(а):
26 дек 2023, 02:44
а потому что все эти облачные хранилища (все Google, и Yandex, и MEGA ... и все-все-все) дают в качестве ссылки не ссылку на файл, а ссылку на некоторые HTML фрагмент, который запускаясь скачивает файл.
Для скачивания (и обмена) из облачных хранилищ предлагается такой многоплатформенный инструмент как Rclone syncs your files to cloud storage
Rclone is a command-line program to manage files on cloud storage. It is a feature-rich alternative to cloud vendors' web storage interfaces. Over 70 cloud storage products support rclone including S3 object stores, business & consumer file storage services, as well as standard transfer protocols.
Как здесь утверждается, поддерживаются более 70 провайдеров - https://rclone.org/#providers

1Fichier Home Config
Akamai Netstorage Home Config
Alibaba Cloud (Aliyun) Object Storage System (OSS) Home Config
Amazon Drive (See note) Home Config
Amazon S3 Home Config
Backblaze B2 Home Config
Box Home Config
Ceph Home Config
China Mobile Ecloud Elastic Object Storage (EOS) Home Config
Arvan Cloud Object Storage (AOS) Home Config
Citrix ShareFile Home Config
Cloudflare R2 Home Config
DigitalOcean Spaces Home Config
Digi Storage Home Config
Dreamhost Home Config
Dropbox Home Config
Enterprise File Fabric Home Config
Fastmail Files Home Config
FTP Home Config
Google Cloud Storage Home Config
Google Drive Home Config
Google Photos Home Config
HDFS Home Config
Hetzner Storage Box Home Config
HiDrive Home Config
HTTP Home Config
Internet Archive Home Config
Jottacloud Home Config
IBM COS S3 Home Config
IDrive e2 Home Config
IONOS Cloud Home Config
Koofr Home Config
Leviia Object Storage Home Config
Liara Object Storage Home Config
Linkbox Home Config
Linode Object Storage Home Config
Mail.ru Cloud Home Config
Memset Memstore Home Config
Mega Home Config
Memory Home Config
Microsoft Azure Blob Storage Home Config
Microsoft Azure Files Storage Home Config
Microsoft OneDrive Home Config
Minio Home Config
Nextcloud Home Config
OVH Home Config
Blomp Cloud Storage Home Config
OpenDrive Home Config
OpenStack Swift Home Config
Oracle Cloud Storage Swift Home Config
Oracle Object Storage Home Config
ownCloud Home Config
pCloud Home Config
Petabox Home Config
PikPak Home Config
premiumize.me Home Config
put.io Home Config
Proton Drive Home Config
QingStor Home Config
Qiniu Cloud Object Storage (Kodo) Home Config
Quatrix by Maytech Home Config
Rackspace Cloud Files Home Config
rsync.net Home Config
Scaleway Home Config
Seafile Home Config
Seagate Lyve Cloud Home Config
SeaweedFS Home Config
SFTP Home Config
Sia Home Config
SMB / CIFS Home Config
StackPath Home Config
Storj Home Config
Synology Home Config
SugarSync Home Config
Tencent Cloud Object Storage (COS) Home Config
Uptobox Home Config
Wasabi Home Config
WebDAV Home Config
Yandex Disk Home Config
Zoho WorkDrive Home Config
The local filesystem Home Config

Virtual providers

These backends adapt or modify other storage providers:

Alias: Rename existing remotes Home Config
Cache: Cache remotes (DEPRECATED) Home Config
Chunker: Split large files Home Config
Combine: Combine multiple remotes into a directory tree Home Config
Compress: Compress files Home Config
Crypt: Encrypt files Home Config
Hasher: Hash files Home Config
Union: Join multiple remotes to work together
Как видно, по этой ссылке показан и конфиг, который нужен для скачивания от этого провайдера :!:

Ответить

Вернуться в «Интернет и коммуниации»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя