Руководство пользователя и База Знаний (FAQ)
SafeShare (FileShare) — защищенный транзитный шлюз передачи данных (The Developer-First Ephemeral Transit Gate) для IT-специалистов, системных администраторов и DevOps-инженеров. Сервис объединяет беспарольную Zero-Knowledge безопасность в браузере с нативной консольной утилитой Linux CLI (fs).
Сценарий 1: Разделение проектов и безопасный старт (Magic Links)
«Мне нужно чистое изолированное пространство для нового заказчика, чтобы не смешивать его файлы с моими рабочими архивами, не вводя пароли».
В SafeShare отсутствует традиционная регистрация с привязкой email. Сессия управляется криптографической парой ключей в localStorage браузера. Перенос и привязка сессий осуществляются через Magic Links (ссылки с хэшем вида https://domain/#auth=ID:TOKEN). Согласно стандарту RFC 3986, фрагмент URL после символа # никогда не передается на HTTP-сервер, защищая ваш ключ от логов Nginx и прокси-серверов.
💡 Пошаговое руководство: Создание и синхронизация профилей
- Новый изолированный аккаунт: Откройте сайт в режиме Инкогнито. Сервер мгновенно сгенерирует чистую сессию с уникальным ID.
- Перенос на другое устройство: Перейдите во вкладку «Доступ», скопируйте Magic Link и откройте ссылку на целевом ПК или смартфоне.
- Бесшовная синхронизация: JavaScript в браузере перехватит хэш-ключ, сохранит его в локальном хранилище и вызовет
history.replaceState(), скрыв ключ из адресной строки.
Сценарий 2: Автоматизация Linux-серверов и сбор логов (CLI)
«На удаленном сервере без графического интерфейса произошел сбой. Нужно собрать логи, сгруппировать их и быстро скачать на рабочий ноутбук, не оставляя мусора на сервере».
Консольный клиент fs работает поверх стандартных утилит curl или wget, не требует прав root для запуска и адаптирован для встраивания в bash-скрипты.
🛠 Рецепт решения задачи в терминале:
1. Установка и привязка к профилю в 1 строку:
curl -sSL "https://domain/api/cli" | bash -s -- "w_user:token"
2. Выгрузка с группировкой в виртуальную папку и локальным стиранием (--rm):
fs u /var/log/nginx/*.log -t "incident-logs" --rm
3. Скачивание всех логов единым архивом на рабочем компьютере:
fs get -t "incident-logs"
Сценарий 3: Передача артефактов и Право на ошибку (7-дневный Grace Period)
«Я отправил клиенту дамп БД с лимитом в 1 скачивание. У клиента оборвался мобильный интернет, попытка списалась, ссылка заблокировалась. Нужно ли выгружать файл заново?»
В SafeShare реализована двухуровневая модель удаления файлов: Soft Delete (Grace Period) и Hard Delete (Garbage Collector).
⏱ Механизм жизненного цикла данных:
-
Soft Delete (Программная блокировка): Когда счетчик скачиваний исчерпан или наступил срок TTL, файл блокируется по публичной ссылке (ответ
404/410). Следующие 7 дней файл остается в статусе "Grace Period". Владелец видит файл в веб-панели и CLI со специальным статусом и может в 1 клик восстановить квоту. -
Hard Delete (Физическое уничтожение): Если в течение 7 дней квоты не были продлены, фоновый сборщик мусора безвозвратно стирает файл с диска (
unlink) и каскадно очищает базу данных. -
Императивное удаление: Команды
fs rmв CLI или кнопка «Удалить файл» в Web UI выполняют Hard Delete немедленно, минуя Grace Period.
Сценарий 4: Утечка данных (Регламент компрометации Zero-Recovery)
«Что произойдет, если я случайно отправил свою ссылку-ключ (#auth=...) в публичный чат?»
В Zero-Knowledge архитектуре сервер не хранит email или телефон и не имеет механизмов сброса пароля (Zero-Recovery Policy).
🛡 Регламент действий при компрометации:
- Экстренное удаление: Через активную сессию (Web UI или CLI) выполните немедленное удаление всех критических файлов (Hard Delete).
- Смена профиля: Откройте сайт в новом окне браузера или режиме Инкогнито, чтобы получить новую чистую Zero-Knowledge сессию.
Вопросы и Ответы (FAQ)
Прямые ответы на ключевые вопросы об устройстве, безопасности, лимитах и автоматизации SafeShare.
Как устроен вход в SafeShare без логина и пароля (Zero-Knowledge Identity)?
Прямой ответ: SafeShare не использует email, логины и пароли. При первом посещении сервер генерирует криптографическую пару: уникальный идентификатор пользователя (user_id) и 256-битный токен управления сессией (management_token), сохраняемые в локальном хранилище localStorage браузера.
Технические подробности
Все запросы к REST API авторизуются через заголовки X-User-ID и X-Access-Token. Сервер не привязывает ваши файлы к личным данным, не отслеживает цифровой отпечаток устройства и не передает данные третьим лицам.
Что произойдет при очистке кэша браузера? Как не потерять доступ к файлам?
Прямой ответ: При полной очистке localStorage браузер потеряет локальные ключи и создаст новый профиль. Чтобы гарантированно сохранить доступ, скопируйте свою Magic Link (вкладка «Доступ») и сохраните её в менеджере паролей или закладках.
Как восстановить доступ
Переход по ссылке вида https://domain/#auth=w_user:token мгновенно восстанавливает рабочее пространство на любом компьютере, планшете или смартфоне. Хэш-фрагмент никогда не отправляется на сервер и не утекает в логи.
Что такое 7-дневный Grace Period и как восстановить заблокированный файл?
Прямой ответ: Grace Period (Льготный период 7 дней) — это режим Soft Delete, защищающий от потери файлов при обрыве соединения или исчерпании лимита скачиваний. Файл блокируется для публичного скачивания, но владелец видит его в панели и может восстановить доступ в 1 клик.
Инструкция по восстановлению
В Web UI нажмите кнопку «Восстановить доступ» в карточке файла и задайте новый срок (дни) или количество скачиваний. В консоли выполните: fs renew <токен> 30 5. Файл немедленно вернется в активный статус.
Как установить и запускать консольную утилиту fs на Linux без root-прав?
Прямой ответ: Утилита fs не требует root-прав и зависимостей помимо стандартных curl или wget. Если у вас нет прав записи в /usr/local/bin, скрипт автоматически сохраняется в текущую папку как ./fs, а ключи профиля безопасно пишутся в ~/.config/fileshare/config (права 600).
Команда установки
(curl -sSL "https://domain/api/cli" || wget -qO- "https://domain/api/cli") | bash -s -- "w_id:token"
Как выгрузить логи с сервера и сразу стереть их с локального диска?
Прямой ответ: Используйте встроенный флаг --rm в команде fs upload (или fs u). Утилита удалит локальный файл с диска сервера только после получения от сервера подтверждения успешной загрузки (HTTP 200/201).
Пример безопасного сбора логов
fs u /var/log/syslog /var/log/nginx/access.log -t "incident-2026" --rm
Как работают виртуальные папки (теги) и скачивание файлов архивом?
Прямой ответ: Тег — это виртуальная метка, группирующая файлы пользователя. Вы можете скачать все файлы одного тега в один клик через кнопку «Скачать ZIP» в интерфейсе либо через CLI командой fs get -t "имя_тега" (архив генерируется потоком на лету).
Команды работы с тегами
• Загрузка с тегом: fs u -t "firmware" app.bin
• Скачивание архива: fs get -t "firmware"
• Удаление всех файлов тега: fs rm -t "firmware"
Каковы технические ограничения на размер файлов, квоты и время хранения?
Прямой ответ: Стандартный лимит на одиночную загрузку — 55 МБ (до 10 ГБ при включении протокола Tus.io). Лимит скачиваний по умолчанию — 3 (настраивается от 1 до 100). Срок жизни (TTL) — по умолчанию 30 дней с автоматическим продлением при обновлении файла.
Опасные расширения
В целях безопасности на уровне сервера запрещена прямая выгрузка исполняемых веб-скриптов (.php, .phtml, .html, .sh). Упаковывайте скрипты в .tar.gz или .zip архивы перед передачей.
Видит ли администратор или сервер содержимое моих файлов?
Прямой ответ: SafeShare не сканирует и не индексирует содержимое пользовательских файлов. Файлы хранятся в изолированных папках с рандомизированными именами. Доступ к скачиванию возможен только при знании 24-байтного криптографического токена.
Шифрование
Передача данных защищена протоколом TLS 1.3 / HTTPS. Для конфиденциальных архивов рекомендуется дополнительное предварительное шифрование (gpg -c, 7z -p или встроенный WebCrypto в дорожной карте развития).
Как встроить SafeShare в CI/CD пайплайны (GitHub Actions, GitLab CI, crontab)?
Прямой ответ: Для CI/CD используйте флаг -k "ID:TOKEN" (разовый запуск с ключом из секретов репозитория) либо стандартный вызов curl на эндпоинт /api/upload.
Пример вызова в CI/CD
curl -sSL "https://domain/api/cli" | bash -s -- \
-k "\${{ secrets.SAFESHARE_KEY }}" \
-t "builds" \
upload build/firmware.bin
Чем SafeShare принципиально отличается от WeTransfer, Google Drive и Transfer.sh?
Прямой ответ: SafeShare не содержит рекламы, трекеров и капч, не заставляет вводить email, объединяет Web UI с нативным Linux CLI, поддерживает in-place обновление файлов (fs ud), виртуальные папки с отдачей ZIP на лету и 7-дневный Grace Period для спасения оборванных загрузок.
Как обновить уже загруженный файл без изменения ссылки (In-Place Upsert)?
Прямой ответ: Используйте команду fs ud <файл> (или fs update) с тем же именем и тегом. Сервер выполнит in-place замену бинарного содержимого на диске, сохранив существующий публичный токен, ссылку и настройки квот. Если файл ранее не существовал, он будет автоматически загружен как новый (Upsert).
Пример in-place обновления
fs ud -t "builds" dist/app-v1.2.tar.gz
SafeShare является транзитным шлюзом передачи данных, а не долговременным архивом резервных копий. Сервис не несет ответственности за потерю файлов вследствие исчерпания срока жизни (TTL) или квот скачиваний. Сохранность секретных ключей (Magic Links) лежит на пользователе. Размещение вредоносного ПО и нарушение законодательства влечет немедленную блокировку.