Вариант использования
Здесь речь идет о больших файлах (минимум 100мб,
Цель
Оптимизируйте производительность загрузки и/или выгрузки данных в/из Zenodo.
Загрузить
Переместите данные из в Zenodo как можно быстрее. Используя 1) JavaScript (браузер) и/или 2) Python (API).
_Сторона клиента_
JavaScript: файл фрагмента (многие существующие библиотеки поддерживают это - например, PLUpload), загружать фрагменты параллельно (нигде такого не видел - можно использовать, например, веб-воркеры javascript).
Python: то же самое, что и JavaScript — фрагментация/распараллеливание + просмотр конвейера HTTP и уровня TCP.
Вопросы, которые необходимо принять во внимание:
_Серверная_
Скачать
Пример 1: набор данных объемом 260 ГБ в 1000 файлов. Как исследователь может легко загрузить файлы, не нажимая 1000 ссылок.
Пример 2: набор данных объемом 260 ГБ в 4 файлах. Что произойдет, если сетевое подключение потеряно (т. е. возобновляемые загрузки).
_Сторона клиента_
Возможно, можно написать приложение JavaScript, которое поможет загрузить 1000 файлов. То же приложение может помочь с возобновляемыми загрузками. Опять же, модель веб-воркера Javascript может быть использована для загрузки файла по частям.
_Серверная_
Реализовать поддержку запросов диапазона HTTP. Нравится загрузка (модель процесса и параллельные загрузки). Например, медленные клиенты, которым требуется время для загрузки файла, заполнят очередь.
Вне области (но следует обсудить): другие методы оптимизации доставки файлов, такие как сети доставки контента.
Часть Python в первую очередь войдет в inveniosoftware/invenio-files-rest
Части JavaScript будут отдельными репозиториями.
Извините, что поднимаю эту старую проблему в несколько не по теме... Я бы очень хотел, чтобы HTTP-сервер Zenodo поддерживал запросы диапазона HTTP, которые упоминаются в исходном комментарии. Насколько я могу судить, в настоящее время их не чествуют. Есть ли это в дорожной карте на данный момент?
Есть ли лучший способ загрузки больших файлов, чем использование обычного интернет-браузера? Большие файлы через http, как правило, выходят из строя в течение нескольких часов, и загрузка не может быть возобновлена.
В моем случае я пытаюсь загрузить набор данных объемом 50 ГБ.
Скорость загрузки составляет около 500 Кбит/с, а соединение прерывается в течение 12 часов, в течение которых длится загрузка.
Я пытаюсь загрузить его каждый день в течение нескольких месяцев (мне нужен набор данных для моей магистерской диссертации).
Какие-либо предложения?
Я даже не смог загрузить набор данных размером 2,2 ГБ после 5 попыток, менеджер загрузок тоже не смог помочь.
@Vichoko , тебе удалось это решить? если да, то как?
Я тоже был очень разочарован, пытаясь загрузить набор данных, который включает два больших файла (12 ГБ и 37 ГБ) в течение нескольких дней.
Я нашел https://zenodo.org/record/1261813 (https://gitlab.com/dvolgyes/zenodo_get), и это очень помогло. Мне удалось скачать всю запись с первого раза.
На первый взгляд, я не вижу в этом ничего волшебного , поэтому я предполагаю, что трюк должен быть в некоторых внутренних компонентах Python-реализации wget .
Link: https://zenodo.org/api/files/cb4ca1fa-1db1-40f9-8f39-0e9d3b2af7ae/musdb18hq.zip size: 21607.1 MB
0% [ ] 3121152 / 22656664047
В 2006 году я мог скачивать файлы размером 21 ГБ быстрее, используя коммутируемое соединение. Zenodo не хватает инфраструктуры CDN? Почему бы не использовать ведро S3 или GCS?
Я думаю, что этот вопрос должен быть вновь открыт, учитывая, что Zenodo демонстрирует аномально медленную и нестабильную загрузку. Или есть другая проблема с отслеживанием загрузок Zenodo?
Самый полезный комментарий
Есть ли лучший способ загрузки больших файлов, чем использование обычного интернет-браузера? Большие файлы через http, как правило, выходят из строя в течение нескольких часов, и загрузка не может быть возобновлена.
В моем случае я пытаюсь загрузить набор данных объемом 50 ГБ.
Скорость загрузки составляет около 500 Кбит/с, а соединение прерывается в течение 12 часов, в течение которых длится загрузка.
Я пытаюсь загрузить его каждый день в течение нескольких месяцев (мне нужен набор данных для моей магистерской диссертации).
Какие-либо предложения?