Обновить

Dedupler год спустя: ~1100 установок и стандартный UI для Filament

Суть пакета в одной картинке
Суть пакета в одной картинке

Год назад я выложил Dedupler - пакет, который экономит место на диске, убирая дубликаты файлов из хранилища и не допуская появления новых.

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

Небольшая ретроспектива, что изменилось за это время

  • Установки идут потихоньку: сейчас около 1100 по данным Packagist.

  • Цены на SSD ниже не стали: экономия от дедупликации стала заметнее, чем год назад.

Что заметил

Ядро работает: Deduplable на моделях, Dedupler::storeFromUploadedFile(), команды для анализа и проверка возможного результата на legacy используются. Но почти в каждом проекте люди пишут один и тот же обвес: поле загрузки, обработка повторной загрузки, отображение уже существующих файлов. Каждый раз заново и каждый раз чуть по-своему.

Что сделал

Вынес UI / логику взаимодействия в отдельный пакет для одной из самых популярных админ панели экосистемы Laravel - Filament: плагин даёт готовый компонент загрузки DeduplerFileUploader.

Подключение в панели

->plugins([
    FilamentDeduplerUploaderPlugin::make(),
])

На форме

DeduplerFileUploader::make('attachment')
    ->multiple()

В инфолисте

DeduplerFilesRepeatableEntry::make()  
    ->label('Документы во вложении'),

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

Что внутри

Расширение стандартного филаментовского FileUpload.

Работает с полиморфными связями модели Laravel через Deduplable.

Одинаковый UI во всех формах проекта - не надо каждый раз описывать как «правильно» грузить файлы.

Построен поверх Dedupler, так что вся логика дедупликации и миграции legacy остаётся в одном месте.

Итог

Год назад была идея «не хранить дубликаты». Сейчас это два пакета: бэкенд, который гарантирует отсутствие дублей, и готовый плагин для Filament, который делает процесс незаметным для разработчика

Dedupler Uploader для Filament или плагин на GitHub

Laravel Storage Dedupler

Комментарии на Хабре, идеи и PR на GitHub - как всегда, приветствуются

Теги:
+2
Комментарии0

Методичка по построению VPN, осень 2026

Осенью 2026 года за шесть недель заблокировали четыре зарубежных VPN сервера, и каждый следующий прожил меньше предыдущего, три последних заблокировали за пять дней. Все настроено серьезно: VLESS поверх REALITY с self-steal SNI на собственном домене, XHTTP, разные провайдеры, страны и ASN. Их все-равно заблокировали. Явление массовое. В начале ноября адреса зарубежных серверов живут от нескольких часов до 1-3 суток при любом протоколе. Смена IP помогает ненадолго.

Методичка по построению VPN, осень 2026

Публикации