heddiyoussouf / mediasignature
Mediasignature 是一个强大且灵活的包,旨在提供图像令牌化和访问控制功能。使用 Mediasignature,您可以安全地对图像进行令牌化,并在指定时间内限制对其访问,为您的宝贵视觉内容添加额外的安全层。
Requires
- php: ^8.0
This package is not auto-updated.
Last update: 2024-09-26 23:22:36 UTC
README
Mediasignature 是一个强大的包,它为图像提供安全的令牌化和时间限制访问控制。它允许您通过生成唯一的令牌并在指定时间内控制访问来保护您的图像。
功能
- 图像令牌化:为每个图像生成唯一且不可篡改的令牌,以确保安全访问。
- 时间限制访问:为图像访问设置过期日期和时间,提供对可访问性的精确控制。
- 强大的安全措施:利用强大的加密算法来保护图像和令牌,防止未经授权的访问。
- 灵活的集成:与现有的图像存储和检索系统无缝集成。
- 用户友好的界面:易于使用的界面,用于令牌生成、访问管理和监控。
- 合规性和隐私:优先考虑符合隐私法律和法规,以保护用户数据和敏感图像。
安装
要安装 Mediasignature,请按照以下步骤操作
- 克隆存储库:
composer require heddiyoussouf/mediasignature。 - 发布 MediasigntureProvider:
php artisan vendor:publish --provider=Heddiyoussouf\Mediasignature\MediasignatureProvider。 - 检查配置文件夹中的
mediasignature文件。
入门
要开始使用 Mediasignature,您需要执行以下步骤
- 将 Mediasignature 门面导入到您的项目中:
Heddiyoussouf\Mediasignature\Facades\Mediasignature。 - 为图像生成 URL:
Mediasignature::wrap()用于单个媒体文件,以及Mediasignature::wrapForMultiple()用于多个文件。
文档
请参阅文档以获取详细的用法说明和代码示例。
在 Laravel 应用程序中,上传媒体文件有两种常见方法
Moving File Directly to the Public Folder:
$request->image->move(public_path('/images'), 'name.jpg');
MedfiaFile::create(["path" => "images/name.jpg"]);
此方法涉及使用 $request->image->move() 方法将文件直接移动到应用程序的公共文件夹。在移动文件后,您可以在 MediaFile 模型中创建一个新的记录(假设存在此类模型)并存储文件路径。
Using the Filesystem:
$path = $request->file('image')->store('images');
// 或者
$path = Storage::disk('public')->putFile('images', $image);
MedfiaFile::create(["path" => $path]);
Laravel 提供了一个文件存储的文件系统 API,它提供了便利性和灵活性。您可以使用 $request->file()->store() 方法或 Storage::disk()->putFile() 方法将文件上传到所需的目录。在存储文件后,您可以在 MediaFile 模型中创建一个新的记录并存储返回的文件路径。
请注意,您应调整文件路径和模型名称以匹配您特定的应用程序结构。此外,在实现 Laravel 应用程序中的文件上传时,请确保处理所有必要的验证或安全措施。
在 Mediasignature 中,有两种常见的包装媒体文件的方法。下面是每个方法的更正式描述
Using Default Configuration:
$file = MediaFile::find($id);
return Mediasignature::wrap($file->path);
此方法使用在 config/mediasignature.php 文件中指定的默认配置。wrap() 方法使用文件路径作为参数调用,并返回文件路径(URL)的包装版本。
Using Custom Configuration:
$file = MediaFile::find($id);
返回 Mediasignature::wrap($file->path, $ttl, $filesystem, $disk);
在这个方法中,您可以指定包装文件的自定义配置选项:$ttl(整数/可为空):设置存活时间(分钟),表示包装文件可访问的持续时间。$filesystem(布尔值/可为空):如果使用第一种方法直接上传媒体,则设置为false,如果使用文件系统,则设置为true。$disk(枚举[本地或公开]/可为空):如果您使用文件系统选项,请指定要使用的磁盘。
此方法允许您覆盖特定文件的默认配置。通过为$ttl、$filesystem和$disk提供自定义值,您可以根据您的需求控制包装行为。
此外,您还可以使用Mediasignature::wrapForMultiple()方法一次包装多个文件。
Mediasignature::wrapForMultiple($array_path)
Mediasignature::wrapForMultiple($array_path, $ttl, $filesystem, $disk)
这些方法接受一个文件路径数组($array_path)作为第一个参数,并提供与单个文件包装方法类似的自定义包装过程选项。
请确保您提供了适当的参数值,并遵循Mediasignature包的文档进行正确使用。
贡献
我们欢迎对Mediasignature的贡献!如果您想做出贡献,请遵循以下步骤
- 叉取仓库。
- 创建一个新分支:
git checkout -b feature/your-feature - 进行更改并提交它们:
git commit -am '添加您的功能' - 推送到分支:
git push origin feature/your-feature - 提交一个pull请求。
请确保您的代码遵循项目的编码约定,并包含适当的测试。