jeremybrammer / laravelimagetos3package
:package_description
dev-master
2020-10-25 17:07 UTC
Requires
- dreamonkey/laravel-cloudfront-url-signer: ^3.0.0
- illuminate/support: ~6
- intervention/image: ^2.5.1
- league/flysystem-aws-s3-v3: ~1.0
Requires (Dev)
- orchestra/testbench: ~5|~6
- phpunit/phpunit: ~9.0
This package is auto-updated.
Last update: 2024-09-26 01:30:32 UTC
README
一个简单的Laravel包,用于处理图像上传。此包将为图像创建数据库迁移,上传、调整大小、存储在s3上,并预签CloudFront URL!
链接
- 此存储库中的示例用法:https://github.com/jeremybrammer/LaravelSandbox
- 包的GitHub存储库链接:https://github.com/jeremybrammer/laravelimagetos3package
此存储库的安装步骤
安装composer项目
composer install
需要此包。
composer require jeremybrammer/laravelimagetos3package
发布包的配置文件。它为依赖项发布一个配置文件。
php artisan vendor:publish --provider="jeremybrammer\laravelimagetos3package\laravelimagetos3packageServiceProvider"
迁移数据库以创建新的图像上传数据库表。
php artisan migrate
在.env文件中更改/添加以下行
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=
AWS_BUCKET=
AWS_URL=
CLOUDFRONT_PRIVATE_KEY_PATH=keys/my_key.pem
CLOUDFRONT_KEY_PAIR_ID=
(将您的CloudFront密钥添加到/storage/keys/my_key.pem。这应该已经被.gitignored。)
根据您的服务器配置,根据需要增加nginx.conf和php.ini设置,以允许更大的图像上传和内存限制。
控制器中的包使用
包含Laravel的Request类,以及我包中的以下类、模型和外观。
use Illuminate\Http\Request; use jeremybrammer\laravelimagetos3package\laravelimagetos3package; use jeremybrammer\laravelimagetos3package\Models\ImageUpload; use jeremybrammer\laravelimagetos3package\Facades\LaravelImageToS3PackageFacade;
获取所有以前上传的图像并为缩略图预签CloudFront URL。
LaravelImageToS3PackageFacade::getAllUploadedImages();
可选地覆盖上传服务中的图像大小设置。
LaravelImageToS3PackageFacade::setWidthByImageType("thumbnail", 100); LaravelImageToS3PackageFacade::setWidthByImageType("small", 200);
使用请求、HTML图像字段名称属性和s3中存储的文件夹调用上传处理程序。
LaravelImageToS3PackageFacade::handUploadRequest($request, "image-upload-field", "victorycto/images");
一个控制器示例,用于使用路由模型绑定查看单个图像,该示例使用我的Eloquent模型
public function view(ImageUpload $imageUpload, $imagetype){ //Use route-model binding for the image object, and an image type to get the proper size. switch($imagetype){ case "thumbnail": $url = $imageUpload->thumbnail_image_url; break; case "small": $url = $imageUpload->small_image_url; break; case "original": $url = $imageUpload->original_image_url; break; default: return; break; } // $imageURL = $this->imagetos3->preSignS3Url($imageUpload->original_image_url); //Sign s3 URL. $imageURL = LaravelImageToS3PackageFacade::preSignCloudFrontUrl($url); //Sign CloudFront URL. return view("imageuploads.view", ["imageURL" => $imageURL]); }
享受吧!
变更日志
请参阅changelog以获取有关最近更改的更多信息。
测试
$ composer test
贡献
请参阅contributing.md以获取详细信息和工作列表。
安全
如果您发现任何与安全相关的问题,请通过作者电子邮件而不是使用问题跟踪器来报告。
致谢
许可
许可。请参阅许可文件以获取更多信息。