mradang/laravel-oss

laravel-oss

Downloads

722

Stars

0

Version

v2.7.0

laravel-oss

安装

$ composer require mradang/laravel-oss -vvv

可选项

  1. 发布配置文件
$ php artisan vendor:publish --provider="mradang\\LaravelOss\\LaravelOssServiceProvider"

配置

  1. 添加 .env 环境变量,使用默认值时可省略
OSS_ACCESS_KEY_ID=
OSS_ACCESS_KEY_SECRET=
# 接入点应使用 CName 绑定自有域名
OSS_ENDPOINT=
OSS_BUCKET=
# 限定上传目录
OSS_DIR=
# 上传文件最大限制,默认 2MB
OSS_MAXSIZE=2MB
# 回调地址,默认当前用户访问地址:request()->getSchemeAndHttpHost()
OSS_CALLBACK=
  1. 添加对象跟踪任务

修改 laravel 工程 app\Console\Kernel.php 文件,在 schedule 函数中增加

// 跟踪 OSS 对象上传
$schedule
->call(function () {
    try {
        \mradang\LaravelOss\Services\OssService::scheduleTracker();
    } catch (\Exception $e) {
        logger()->warning('OSS 对象跟踪失败:'.$e->getMessage());
    }
})
->cron('* * * * *')
->name('OssService::scheduleTracker')
->withoutOverlapping();

添加的内容

添加的数据表迁移

  • oss_objects
  • oss_tracks

添加的路由

  • post /api/laravel_oss/callback

使用

模型 Trait

use mradang\LaravelOss\Traits\OssObjectTrait;

模型 boot

模型删除时自动清理 OSS 对象

模型实例方法

  • array ossobjectUploadParams($extension, $group, array $data = []) 为模型生成前端直传参数
  • morphMany ossobjects 对象关联(一对多)
  • mradang\LaravelOss\Models\OssObject ossobjectFind($name) 查找对象
  • void ossobjectDelete($name) 删除对象(异步)
  • void ossobjectClear($group = null) 清空模型的全部对象
  • void ossobjectSaveSort(array $data) 保存对象排序
  • mradang\LaravelOss\Models\OssObject ossobjectCreateByFile($filename, $group, array $data = []) 上传本地文件
  • mradang\LaravelOss\Models\OssObject ossobjectCreateByUrl($url, $group, array $data = []) 上传 Url 文件
  • void ossobjectAsyncCreateByUrl($url, $group, array $data = []) 异步上传 Url 文件
  • void ossobjectUpdateData(int $id, array $data) 更新附加数据

模型静态方法

// $timeout 生成 URL 的有效期,最长 3600 秒(1 小时)
// $options OSS 数据处理选项
// -- 图片处理 $options['x-oss-process'] = "image/resize,h_${height},w_${width}";
  • string ossobjectGenerateUrl($object, $timeout = 300, $options = null) 为对象生成访问链接
mradang

Author

mradang