Пакет Laravel ShareLink дозволяє створювати, керувати та забезпечувати безпечні тимчасові посилання для файлів, маршрутів і моделей. За його допомогою ви можете легко ділитися матеріалами, встановлюючи кастомізовані терміни дії та обмеження на кількість переходів, а також отримувати API для управління поділом, наприклад, продовжувати термін дії вже існуючих посилань. Ось простий приклад з документації пакета:
use Grazulex\ShareLink\Facades\ShareLink;
// Поділитися файлом з обмеженим терміном дії
$link = ShareLink::create('/path/to/document.pdf')
->expiresIn(60) // 60 хвилин
->maxClicks(5)
->withPassword('secret123')
->generate();
echo $link->url; // https://yourapp.com/share/abc123xyz
Цей пакет також має безліч розширених можливостей, таких як обмін маршрутами, моделями Eloquent або встановлення IP-обмежень для посилань:
$link = ShareLink::create('/secure/document.pdf')
->expiresIn(60)
->burnAfterReading() // Знищення після першого доступу
->metadata([
'allowed_ips' => ['192.168.1.0/24', '10.0.0.1'],
'denied_ips' => ['192.168.1.100']
])
->generate();
Пакет також забезпечує CLI для генерації посилань, якщо вам зручніше створювати їх з командного рядка, ніж через код:
$ php artisan sharelink:list --active
$ php artisan sharelink:create /reports/quarterly.pdf \
--expires=72 \
--max-clicks=10 \
--password=Q4Report2024
# Основні можливості
- Кілька типів ресурсів - Простий обмін файлами, маршрутами та попереднім переглядом моделей
- Обмежений доступ за часом - Встановлення термінів дії та обмежень на використання
- Парольний захист - Додаткові паролі для підвищення безпеки
- Обмеження швидкості - Обмеження на рівні токенів для запобігання зловживанням
- Фільтрація IP-адрес - Дозвіл/заборона конкретних IP-адрес або CIDR-діапазонів
- Підписані URL - Інтеграція підписаних маршрутів Laravel за бажанням
- Знищення після прочитання - Одноразові посилання, які знищуються після використання
- Комплексний аудит - Відстеження патернів доступу, IP-адрес і позначок часу
- Розширена безпека - Захист від атаки методом брутфорсу, обмеження на введення паролів
- Гнучка доставка - Підтримка X-Sendfile, X-Accel-Redirect та потокового обміну
- API управління - Відкликання та продовження посилань програмно
- Команди CLI - Повна підтримка команд Artisan
- Спостережуваність - Вбудоване логування та інтеграція метрик
- Легкість тестування - Комплексне покриття тестами з легким моканням
💻 Дізнайтеся більше на GitHub: Grazulex/laravel-sharelink