samsonn commited on
Commit
0ce3ced
·
verified ·
1 Parent(s): 3adcec2

Create README

Browse files
Files changed (1) hide show
  1. README +156 -0
README ADDED
@@ -0,0 +1,156 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Войти
2
+ Зарегистрироваться бесплатно
3
+ Вы сказали:
4
+ Инка твоя задача переписать после страты для людей на понятном нормальном языке
5
+
6
+ # HuggingFaceDownloader 2.2.1
7
+
8
+ **Дата:** 26.10.2026
9
+ **Сборка:** portable single-file, win-x64, 152 MB
10
+ **Файл:** `HuggingFaceDownloader.exe` (FileVersion 2.2.1.0)
11
+ **Тесты:** 141/141 • **Сборка:** 0 ошибок / 0 предупреждений
12
+ **Промежуточные версии:** 2.1.0 и 2.1.1 — отдельных release-notes не было; здесь собрано всё, что изменилось с 2.0.0.
13
+
14
+ ---
15
+
16
+ ## ✅ Добавлено
17
+
18
+ - [ ] **Контроллер дисковой записи (IoThrottle)** — главная новая возможность. Раньше качание больших файлов (10–50 ГБ) забивало диск до 100% и Windows «вставала» (мышь, окна, антивирус). Теперь:
19
+ - [ ] запись идёт через «ведро токенов»: потоки ждут своей очереди, а не пишут кто во что горазд;
20
+ - [ ] цель — **80% занятости диска** (замер системным счётчиком `PhysicalDisk % Idle Time`), а не 100%;
21
+ - [ ] **автоматический потолок скорости**: при пустом диске скорость плавно растёт (20 → 40 → 80 → 160 MB/s), при загрузке диска так же быстро падает; верхняя граница авторежима 200 MB/s;
22
+ - [ ] короткий burst-запас 16 MB, чтобы мелкие файлы не тормозились;
23
+ - [ ] потоку скачивания ставится **низкий приоритет I/O** — Windows сам отдаёт диск системе, а не нам;
24
+ - [ ] если диск занят ≥95% — скорость режется пополам сразу (защита от «звонких» 100%);
25
+ - [ ] настраивается в `settings.json`: `IoThrottleEnabled` (по умолчанию `true`), `DiskBusyTargetPercent` (по умолчанию `80`), `MaxWriteRateMBps` (по умолчанию `0` = авторежим; например `30` = жёсткий потолок 30 MB/s);
26
+ - [ ] **Запись в обход кэша ОС** (`FileOptions.WriteThrough`): раньше Windows накапливал грязные страницы в RAM и сбрасывал их на диск пачками — отсюда «горбы» 100% на ровном месте. Теперь байты уходят на диск сразу и ровно;
27
+ - [ ] **Сохранение осколка при неудаче** (`KeepPartFileForResume`): если файл не докачался (связь легла, лимит попыток вышел) — `.download`-осколок **не удаляется**, следующий запуск докачает его с того же места. Раньше часы скачивания выбрасывались;
28
+ - [ ] **Прогресс-бюджет попыток**: если попытка принесла хоть сколько-то байт, счётчик сетевых ретраев обнуляется (общий потолок — 100 попыток). Раньше 46-ГБ файл умирал на 8-й сетевой паузе, хотя реально докачивался;
29
+ - [ ] **Проверка «SHA256 важнее размера»**: размер из API — метаданные, которым не всегда можно верить. Порядок теперь такой:
30
+ - [ ] хеш совпал → файл принят, даже если фактический размер отличается от заявленного API (в лог пишется предупреждение);
31
+ - [ ] хеш не совпал и файл короче ожидаемого → это не битый файл, а **недокачанный**: переименовывается в `.download` и докачивается;
32
+ - [ ] хеш не совпал и файл полного размера → файл действительно битый, удаляется;
33
+ - [ ] раньше при несовпадении хеша файл удалялся всегда — недокачанный гигант терялся навсегда;
34
+ - [ ] **Честный итог скачивания**: в конце считается, сколько файлов было поставлено в очередь и сколько реально завершилось. Снятые/пропущенные файлы больше не считаются успехом — вместо «зелёного» сообщения показывается предупреждение;
35
+ - [ ] **5 новых тест-кейсов** (141 против 136 �� 2.0.0): докачка осколков, отмена, возобновление, проверка целостности.
36
+
37
+ ## 🔧 Улучшено
38
+
39
+ - [ ] Скачивание не морозит систему: диск держится около 80%, интерфейс и другие программы отвечают;
40
+ - [ ] Сетевые ретраи стали умнее: пауза растёт ступенчато (2 s, 4 s, 6 s … максимум 15 s) и не «съедает» уже скачанные байты;
41
+ - [ ] Для gated-моделей (401/403) по-прежнему запрашивается авторизация и повтор, но не более 2 раз на файл;
42
+ - [ ] Логирование по умолчанию **выключено** (`EnableLogging = false`) — меньше мусора на диске и меньше самой записи; включается в `settings.json`;
43
+ - [ ] Приложение: `.NET 10`, portable single-file, 141 тест-кейс.
44
+
45
+ ## 🎨 Изменено
46
+
47
+ - [ ] Настройки по умолчанию: `DiskBusyTargetPercent` 75 → **80**, `EnableLogging` `true` → **`false`**;
48
+ - [ ] В `settings.json` добавлены 3 ключа троттлинга;
49
+ - [ ] Версия: `2.1.1` → **`2.2.1`**.
50
+
51
+ ## 🗑 Удалено
52
+
53
+ - [ ] Слепое удаление файла при несовпадении SHA256 (заменено разбором «недокачан vs битый»);
54
+ - [ ] Привязка `TotalSize` к размеру осколка на диске (ожидаемый размер берётся из API, фактический фиксируется только после проверки).
55
+
56
+ ## ⚠️ Известные особенности
57
+
58
+ - [ ] Троттлинг измеряет загрузку диска целиком: если диск параллельно грузят другие программы, паузы будут длиннее — это ожидаемо;
59
+ - [ ] `WriteThrough` даёт честную, но мелкую запись: на очень медленных USB-дисках можно поставить `MaxWriteRateMBps: 20`;
60
+ - [ ] Значения в уже существующем `settings.json` **не обновляются автоматически**: у кого стоит `DiskBusyTargetPercent: 75`, править вручную или удалить файл настроек;
61
+ - [ ] Portable-сборка при первом запуске распаковывает нативные библиотеки в `%TEMP%\.net\HuggingFaceDownloader` (нужен write-доступ к TEMP); старые папки самораспаковки не удаляются;
62
+ - [ ] С выключенным логом строк вида `IoThrottle: диск X%, скорость записи → Y MB/s` нет — режим виден только по Диспетчеру задач.
63
+
64
+ ---
65
+
66
+ **Скачать:** `HuggingFaceDownloader.exe` — один файл, ничего устанавливать не нужно.
67
+ **Системные требования:** Windows 10/11 x64.
68
+
69
+ ChatGPT сказал:
70
+ Вот версия для обычных людей — без технического жаргона, но с сохранением всех важных изменений. Можно публиковать как описание релиза.
71
+
72
+ Написание текста
73
+
74
+
75
+ HuggingFaceDownloader 2.2.1 — что нового
76
+ Дата выпуска: 26.10.2026
77
+ Для Windows 10/11 (64-bit)
78
+ Размер: 152 МБ
79
+ Установка: не требуется — достаточно запустить один файл.
80
+
81
+ В версии 2.2.1 мы сосредоточились на главном: скачивание больших моделей и файлов теперь меньше нагружает компьютер, а прерванные загрузки стало проще продолжить без потери уже скачанных данных.
82
+
83
+ ✅ Что нового
84
+ 💽 1. Компьютер больше не должен зависать при скачивании больших файлов
85
+ Раньше при скачивании файлов размером 10–50 ГБ диск мог загружаться на 100%. Из-за этого Windows начинала тормозить: зависали окна, медленно двигалась мышь, другие программы и антивирус работали с задержками.
86
+
87
+ Теперь программа автоматически регулирует скорость записи на диск, стараясь удерживать его загрузку примерно на уровне 80%.
88
+
89
+ Если диск свободен, скорость записи постепенно увеличивается.
90
+ Если диск занят, программа снижает скорость и даёт другим приложениям возможность работать.
91
+ При критической нагрузке скорость автоматически уменьшается ещё сильнее.
92
+ Небольшие файлы по-прежнему могут записываться быстро, без лишних задержек.
93
+ Результат: можно скачивать большие файлы и одновременно пользоваться компьютером. Фактическая скорость зависит от диска и нагрузки со стороны других программ.
94
+
95
+ 🔄 2. Прерванные загрузки можно продолжить
96
+ Если пропал интернет, произошёл сбой или программа исчерпала число попыток, частично скачанный файл теперь сохраняется.
97
+
98
+ При следующем запуске программа сможет продолжить загрузку с того места, где она остановилась, вместо того чтобы начинать всё заново.
99
+
100
+ Это особенно важно для моделей и других файлов размером в десятки гигабайт: часы скачивания не придётся тратить повторно.
101
+
102
+ 🛡️ 3. Более надёжная проверка скачанных файлов
103
+ После загрузки программа проверяет целостность файла с помощью SHA-256 — специального контрольного кода, позволяющего обнаружить повреждения.
104
+
105
+ Теперь программа различает три ситуации:
106
+
107
+ Файл исправен. Проверка пройдена — файл принимается.
108
+ Файл скачан не полностью. Он сохраняется для продолжения загрузки.
109
+ Файл повреждён. Если размер полный, но проверка не пройдена, файл удаляется и может быть скачан заново.
110
+ Раньше при неудачной проверке файл удалялся независимо от причины. Теперь частично скачанные большие файлы не теряются из-за временного обрыва соединения.
111
+
112
+ Кроме того, если контрольная сумма совпадает, файл принимается даже в случае, когда API Hugging Face сообщает неточный размер.
113
+
114
+ 🌐 4. Умнее повторные попытки при сетевых сбоях
115
+ Если соединение прерывается, программа повторяет попытку с постепенно увеличивающейся паузой: 2, 4, 6 секунд и далее, максимум до 15 секунд.
116
+
117
+ Если очередная попытка принесла новые данные, счётчик сетевых ошибок сбрасывается. Поэтому длительная загрузка не должна прекращаться только из-за нескольких временных обрывов связи.
118
+
119
+ Для моделей, требующих доступа через авторизацию, сохранена обработка ошибок доступа. Программа запрашивает повторную попытку, но не более двух раз на один файл.
120
+
121
+ 📊 5. Честный результат в конце загрузки
122
+ Теперь программа отдельно учитывает файлы, которые были поставлены в очередь, и файлы, которые действительно скачаны до конца.
123
+
124
+ Если часть файлов была пропущена или снята с загрузки, программа не будет выдавать это за полностью успешное завершение. Вместо этого она покажет предупреждение.
125
+
126
+ 🔧 Другие улучшения
127
+ Меньше лишней нагрузки на диск. Изменён способ записи данных, чтобы Windows реже накапливала большие объёмы несохранённых данных и сбрасывала их на диск резкими скачками.
128
+ Логирование выключено по умолчанию. Программа не создаёт лишние журналы и меньше записывает на диск. При необходимости журналирование можно включить в настройках.
129
+ Больше автоматических проверок. Количество тестовых сцена��иев увеличено со 136 до 141. Дополнительно проверены продолжение загрузки, отмена операций и контроль целостности файлов.
130
+ ⚙️ Настройки
131
+ При необходимости поведение программы можно настроить в файле settings.json.
132
+
133
+ Добавлены параметры, позволяющие включать или выключать управление нагрузкой на диск, задавать желаемый уровень его занятости и ограничивать скорость записи.
134
+
135
+ Например, на медленном USB-диске можно установить ограничение скорости записи в 20 МБ/с.
136
+
137
+ Важно: если файл settings.json уже существует, программа не переписывает старые настройки автоматически. Чтобы применить новые значения по умолчанию, нужно вручную изменить настройки или удалить файл, чтобы он был создан заново.
138
+
139
+ ⚠️ Что нужно знать
140
+ Если диск одновременно активно используют другие программы, скачивание может замедляться. Это нормальная работа защиты от перегрузки.
141
+ На очень медленных USB-накопителях может потребоваться вручную ограничить скорость записи.
142
+ При первом запуске portable-версии программа распаковывает служебные компоненты во временную папку Windows. Для этого необходим доступ на запись в %TEMP%.
143
+ При выключенном журналировании подробные сообщения о регулировке скорости не сохраняются. Проверить нагрузку можно через Диспетчер задач Windows.
144
+ 📦 Скачать и запустить
145
+ Файл: HuggingFaceDownloader.exe
146
+ Версия: 2.2.1
147
+ Размер: 152 МБ
148
+
149
+ Устанавливать программу не нужно. Скачайте EXE-файл и запустите его.
150
+
151
+ Системные требования: Windows 10 или Windows 11, 64-разрядная версия.
152
+
153
+ Итог
154
+ Главные изменения версии 2.2.1 — меньше зависаний при скачивании больших файлов, возможность продолжать прерванные загрузки и более надёжная проверка результата.
155
+
156
+ Программа стала бережнее относиться к диску и лучше справляться с нестабильным интернет-соединением. Это особенно полезно при скачивании больших моделей с Hugging Face.