Смешанные галереи файлов
Cotton показывает фото, документы, аудио, видео и файлы моделей в одной браузерной файловой поверхности. Это важно для реальных библиотек, где медиа, рабочие документы, сканы, заметки, записи и файлы дизайна лежат вперемешку.
- Пути превью для изображений, SVG и HEIC закрывают обычные фотобиблиотеки.
- Превью PDF и текста дают читать документы без скачивания.
- Аудио показывает обложку или сгенерированные миниатюры формы волны плюс встроенный плеер.
Поверхности превью, которые правда есть
История превью держится на конкретных файловых поверхностях: рендеринг изображений/SVG/HEIC, превью PDF и текста, форма волны аудио или миниатюры обложек, синхронизированный текст песен, нативное воспроизведение видео, HLS по запросу для старого видео, миниатюры моделей, контекст страницы шары и удобная для кеша отдача через контент, управляемый Cotton.
Что это меняет
Превью решают, ощущается ли self-hosted облако продуктом или холодным объектным бакетом. Cotton относится к слою превью как к части сценария: просмотр, инспекция, шаринг, перемотка, а скачивание — только когда это правда следующий шаг.
PDF остаётся в приложении
Превью PDF — не кнопка скачивания в маске. На мобильном это особенно важно: документ остаётся внутри браузерного сценария, а выделяемый текст работает, если исходный PDF содержит настоящий текст.
Форма волны аудио и текст песен
Превью аудио сначала ищут встроенную обложку, потом откатываются на сгенерированное изображение формы волны. Плеер может использовать вспомогательные текстовые дорожки LRC/SRT для синхронного текста песен, не притворяясь, что аудиофайл — мёртвый блоб.
Извлечение кадров видео
Превью видео генерируются через контролируемый путь FFmpeg, который умеет читать потоки с поддержкой диапазонов. Цель — полезные постеры без превращения каждого видео в гигантское временное скачивание.
HLS по запросу для старого видео
Нативное для браузера видео стримится как исходный файл с поддержкой Range. Старое видео вроде AVI/MKV открывается через авторизованный токеном HLS: Cotton строит плейлисты, транскодирует короткие сегменты по запросу из чанкового исходного потока и кеширует сегменты ненадолго, а не конвертирует весь файл заранее.
Управляемые пути превью
Большая часть повседневной работы с превью остаётся рядом с управляемым рантаймом .NET: генерация изображений, SVG, HEIC, текста и PDF не превращает приложение в кучку несвязанных сервисов. FFmpeg остаётся для аудио/видео, f3d — для миниатюр моделей.
Приоритет и учёт нагрузки
Генерация превью — обычная продуктовая работа, а не ночной скрипт обслуживания. Cotton может приоритизировать задачи превью и учитывать сигналы активной загрузки и тихих часов, чтобы тяжёлая фоновая работа не ломала передачи на переднем плане.
Контекст страницы шары
Превью важны и вне аккаунта. Получатель расшаренного файла должен понимать, что получил, до скачивания — особенно для медиа, PDF и файлов моделей.
Удобная для кеша отдача
Превью хранятся по контентной идентичности, поддерживают удобные для кеша ответы и наружу отдают зашифрованные хеши превью вместо сырых ключей хранилища.
Где превью должны быть аккуратными
Поддержка превью честна, только когда уважает тип файла и границу безопасности. Некоторым форматам нужна поддержка безопасного генератора, а зашифрованные на стороне клиента папки нельзя продавать так, будто извлечение превью на сервере видит открытый текст везде.