Laravel 生成文件临时分享链接
Laravel ShareLink 包可以帮助你创建、管理和保护文件、路由和模型的临时共享链接。该软件包允许使用自定义过期和最大点击量进行简单共享,并提供用于管理共享的 API,例如延长现有共享的时间。以下是软件包文档中的一个基本示例:
use Grazulex\ShareLink\Facades\ShareLink;
// Share a file with expiration
$link = ShareLink::create('/path/to/document.pdf')
->expiresIn(60) // 60 minutes
->maxClicks(5)
->withPassword('secret123')
->generate();
echo $link->url; // https://yourapp.com/share/abc123xyz
该包有很多高级特性,比如分享路由,Eloquent 模型,甚至可以为共享链接指定 IP 限制:
$link = ShareLink::create('/secure/document.pdf')
->expiresIn(60)
->burnAfterReading() // Self-destructs after first access
->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
主要特性
- 多种资源类型 - 无缝分享文件、路由和模型预览
- 访问时间限制 - 设置到期时间及使用次数
- 密码保护 - 可选密码防护提供安全性
- 限流 - token 限流,防止滥用
- IP 过滤 - 允许/禁用指定 IP 地址或者 CIDR 范围
- 签名 URL - 可选 Larave 签名路由集成
- 阅后即焚 - 一次性访问链接,阅后自销毁
- 全面的审计 - 跟踪访问模式、IP 和时间戳
- 高级安全 - 密码限制、暴力保护
- 灵活的交付 - 支持 X-Sendfile、X-Accel-Redirect 和流媒体
- 管理 API - 以编程方式撤销和扩展链接
- CLI 命令 - 完全的 Artisan 命令支持
- 可观察性 - 内置日志记录和指标集成
- 测试友好 - 全面的测试覆盖率,易于模拟
💻 在 GitHub 上查看:Grazulex/laravel-sharelink