v1.8.74: skill docs update — resume/retry behavior, Windows SHA256 path fix
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Binary file not shown.
BIN
releases/ServerManager-v1.8.74-win-x64.exe
Normal file
BIN
releases/ServerManager-v1.8.74-win-x64.exe
Normal file
Binary file not shown.
@@ -204,11 +204,13 @@ unset SSH_ASKPASS && unset DISPLAY && ssh ALIAS "command"
|
|||||||
**ВСЕГДА используй `--upload` / `--download` для передачи файлов.** Это SFTP-протокол с автоматическими фичами:
|
**ВСЕГДА используй `--upload` / `--download` для передачи файлов.** Это SFTP-протокол с автоматическими фичами:
|
||||||
|
|
||||||
- **Файлы >10MB:** chunked upload с resume — при обрыве продолжит с того места
|
- **Файлы >10MB:** chunked upload с resume — при обрыве продолжит с того места
|
||||||
- **Retry:** до 5 попыток с exponential backoff при сетевых ошибках
|
- **Retry:** adaptive retry — до 30 попыток для больших файлов (exponential backoff, min 5s)
|
||||||
- **SHA256 верификация:** автоматическая проверка целостности после загрузки
|
- **SHA256 верификация:** автоматическая проверка целостности после загрузки
|
||||||
- **Atomic rename:** запись в .part файл → проверка → переименование
|
- **Atomic rename:** запись в .part файл → проверка → переименование
|
||||||
- **Keepalive:** SSH keepalive каждые 15 секунд — не обрывается NAT/роутером
|
- **Keepalive:** SSH keepalive каждые 15 секунд — не обрывается NAT/роутером
|
||||||
- **Прогресс:** 25/50/75% для файлов >1MB
|
- **Прогресс:** 25/50/75% для файлов >1MB
|
||||||
|
- **Resume:** при повторном запуске `--upload` автоматически продолжает с .part файла (не начинает заново)
|
||||||
|
- **Windows SSH:** SHA256 через PowerShell `Get-FileHash`, пути автоматически нормализуются
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Загрузить файл на сервер (SFTP)
|
# Загрузить файл на сервер (SFTP)
|
||||||
@@ -218,6 +220,8 @@ python ~/.server-connections/ssh.py ALIAS --upload "D:/local/file" //remote/path
|
|||||||
python ~/.server-connections/ssh.py ALIAS --download //remote/path/file "D:/local/file"
|
python ~/.server-connections/ssh.py ALIAS --download //remote/path/file "D:/local/file"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Поведение при обрыве:** соединение оборвалось → ждёт 5-30 сек → переподключается → проверяет .part файл на сервере → дозаливает с того места. Если файл полностью залит — проверяет SHA256 → atomic rename `.part` → финальный файл. Работает даже на нестабильных каналах (тестировано: 250MB через 6 reconnect'ов).
|
||||||
|
|
||||||
**ЗАПРЕЩЕНО** использовать shell-команды как **способ передачи файлов** на/с сервера:
|
**ЗАПРЕЩЕНО** использовать shell-команды как **способ передачи файлов** на/с сервера:
|
||||||
- `echo "длинный_контент" > remote_file` — обрежет данные, сломает бинарники
|
- `echo "длинный_контент" > remote_file` — обрежет данные, сломает бинарники
|
||||||
- `base64` чанки через exec_command — ненадёжно, ломается на больших файлах (exit 127)
|
- `base64` чанки через exec_command — ненадёжно, ломается на больших файлах (exit 127)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
"""Version info for ServerManager."""
|
"""Version info for ServerManager."""
|
||||||
|
|
||||||
__version__ = "1.8.73"
|
__version__ = "1.8.74"
|
||||||
__app_name__ = "ServerManager"
|
__app_name__ = "ServerManager"
|
||||||
__author__ = "aibot777"
|
__author__ = "aibot777"
|
||||||
__description__ = "Desktop GUI for managing remote servers"
|
__description__ = "Desktop GUI for managing remote servers"
|
||||||
|
|||||||
Reference in New Issue
Block a user