laravel cdn 结合七牛云实现文件自动同步功能
在实际应用中我们为了节省服务器开支都会部署cdn,本文围绕七牛云cdn 来展开说明。
一. 安装 overtrue 的七牛cdn 扩展包 laravel-filesystem-qiniu :
安装:
$ composer require "overtrue/laravel-filesystem-qiniu" -vvv
配置cdn :
1.注册
在 config/app.php
中添加Overtrue\LaravelFilesystem\Qiniu\QiniuStorageServiceProvider
'providers' => [
// Other service providers...
Overtrue\LaravelFilesystem\Qiniu\QiniuStorageServiceProvider::class,
],
- 添加七牛磁盘配置到
config/filesystems.php
:
<?php
return [
'disks' => [
//...
'qiniu' => [
'driver' => 'qiniu',
'access_key' => env('QINIU_ACCESS_KEY', 'xxxxxxxxxxxxxxxx'),
'secret_key' => env('QINIU_SECRET_KEY', 'xxxxxxxxxxxxxxxx'),
'bucket' => env('QINIU_BUCKET', 'test'),
'domain' => env('QINIU_DOMAIN', 'xxx.clouddn.com'), // or host: https://xxxx.clouddn.com
],
//...
]
];
二.安装 asset-cdn :
$ composer require arubacao/asset-cdn
仅对于Laravel必需<=5.4
,因为启用了Laravel >=5.5
自动发现。
// config/app.php
'providers' => [
// Other Service Providers
\Arubacao\AssetCdn\AssetCdnServiceProvider::class,
],
配置:
asset-cdn 提供了asset-cdn:push
, asset-cdn:sync
, asset-cdn:empty
三个命令具体可以查看文档
如果要使用必须进行相应的配置
发布配置文件
$ php artisan vendor:publish --provider="Arubacao\AssetCdn\AssetCdnServiceProvider"
应为我们使用的是七牛云,所以这里有变动不能安装说明来配置
// config/asset-cdn.php
[
'cdn_url' =>env('CDN_URL','xxxx'),//添加配置方便动态更改
'filesystem' => [
'disk' => 'qiniu',//注意这里要和config/filesystems.php 添加qiniu配置一样
],
]
.env.example
中添加
#cdn
USE_CDN=
CDN_URL=
三.任务调度
使用调度器时,我们需要修改系统的 Cron 计划任务配置信息,运行以下命令:
export EDITOR=vi && crontab -e
复制下面这一行:
* * * * * php /home/vagrant/Code/larabbs/artisan schedule:run >> /dev/null 2>&1
此时进入 VI 编辑器界面 保存退出
注册调度任务
在app/Console/Kernel.php
中添加(可自行设置)
<?php
.
.
.
class Kernel extends ConsoleKernel
{
.
.
.
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')
// ->hourly();
// 每隔一个小时执行一遍
$schedule->command('asset-cdn:sync')->hourly();
}
.
.
.
}
即可实现cdn 的同步
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: