CottonПревью
Превью

Показывать, что внутри файла. А не только его имя.

PDF с выделяемым текстом на мобильном, аудио с формой волны и текстом песен, видео с перемоткой на зашифрованном хранилище, HEIC, SVG, 3D-модели STL, Markdown с оглавлением — один конвейер превью без маркетплейса плагинов.

ИзображенияМобильный PDFФорма волны аудиоHLS-видеоПревью в шарах

Смешанные галереи файлов

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 и файлов моделей.

Удобная для кеша отдача

Превью хранятся по контентной идентичности, поддерживают удобные для кеша ответы и наружу отдают зашифрованные хеши превью вместо сырых ключей хранилища.

Где превью должны быть аккуратными

Поддержка превью честна, только когда уважает тип файла и границу безопасности. Некоторым форматам нужна поддержка безопасного генератора, а зашифрованные на стороне клиента папки нельзя продавать так, будто извлечение превью на сервере видит открытый текст везде.

Доказательство превью

Это поверхность продукта, а не превью для галочки.

Превью Cotton делают настоящую self-hosted библиотеку читаемой: документы остаются читаемыми, в PDF можно выделять текст прямо в браузере, аудио получает плеер с волной или обложкой, а превью медиа остаются привязаны к тому же чанковому пути хранения.

Mobile PDFPDF остаётся внутри Cotton на мобильном, с выделяемым текстом, когда исходный документ его даёт.
AudioПревью аудио показывают волну или обложку, элементы управления воспроизведением и синхронизированный текст или субтитры.
Legacy videoСтарое видео может идти через HLS по запросу, когда Cotton может его собрать, без предварительной конвертации всего исходника.
3D modelПревью 3D делают странные файлы пригодными для осмотра, но не превращают модели во всю историю продукта.
Документы

Mobile PDF остаётся внутри Cotton.

На телефонах и планшетах превью PDF — больше чем удобство: если исходник содержит текст, пользователь может его осмотреть и скопировать внутри Cotton, а не прыгать в другое приложение.

Аудио

Аудио получает нормальное отношение файлового облака.

Cotton достаёт встроенную обложку, откатывается на сгенерированную волну, играет файл и показывает синхронизированный по времени текст из вынесенного LRC/SRT.

Видео

Старое видео может стать HLS по запросу.

Файлы в духе AVI/MKV получают превью-постеры и воспроизведение HLS без предварительной конвертации всего исходника. FFmpeg читает сегменты по диапазонам из хранилища Cotton по мере воспроизведения.

Нативный путь

Большинство статических превью остаётся в управляемом коде.

Пути превью для картинок, SVG, HEIC, текста и PDF держат ежедневные случаи рядом с рантаймом .NET, а не превращают каждый тип файла в код-склейку.

Очередь

Генерация превью приоритизируется и чувствует нагрузку.

Задачи превью — это работа продукта, поэтому планировщик может давать им приоритет, а тяжёлое обслуживание понимает, когда отложить или притормозить.

Безопасность

URL превью не светят сырые ключи хранилища.

Превью хранятся по идентичности контента, но публичный материал URL использует зашифрованные хеши превью и дружественные к кешу ответы.

Вывод

Поддержка превью — фича файлового облака, а не украшение.

Если пользователь должен скачивать каждый файл только чтобы понять, что это такое, облако провалилось на слое просмотра. Cotton делает превью приоритетной работой продукта: генерирует полезный вид, кеширует по контенту, пушит готовность активным клиентам и не выгоняет пользователей из приложения ради базового осмотра.

Граница превью

Широта превью зависит от поддержки типов файлов и безопасного поведения генератора. Папки с клиентским шифрованием должны держать границу шифрования, так что не каждый режим превью надо обещать везде.

Вопросы

Прямые ответы

Cotton оптимизирован только под фотографии?

Нет. Фото — только часть поверхности превью. Cotton также закрывает PDF, текст, аудио, видео, SVG, HEIC и отдельные 3D-модели.

PDF на мобильном можно читать без другого приложения?

Да. В этом и смысл мобильного превью PDF: пользователи телефонов и планшетов читают и копируют выделяемый текст внутри Cotton, если исходный PDF содержит текст.

Что если у аудиофайла нет обложки?

Cotton может откатиться на сгенерированное изображение формы волны. Воспроизведение также может использовать вспомогательные текстовые дорожки LRC/SRT для синхронного текста песен.

Старые форматы видео надо скачивать целиком?

Не обязательно. Нативные для браузера форматы стримятся напрямую. Старое видео может использовать HLS по запросу, где FFmpeg читает перематываемый чанковый поток и делает короткие сегменты воспроизведения без полной заранее сконвертированной MP4-копии.

Генерация превью мешает загрузкам на переднем плане?

Нет. Задачи превью живут в продуктовой очереди, а работа по обслуживанию может использовать активность загрузок и сигналы тихих часов, чтобы пропускать, откладывать или притормаживать тяжёлые фоновые задачи.

Превью ломают шифрование?

Нет. Превью генерируются через авторизованные серверные пути из конвейера хранения. Для зашифрованных на стороне клиента папок поведение обязано уважать границу клиентского шифрования.

Получатели шары тоже получают полезные превью?

Да, когда тип файла поддержан и доступ к шаре это разрешает. Ссылка должна быть понятной до скачивания.