首先用的是回调方式,接下来 我们看看对应流程。
在开发之前 先获取到阿里云oss相关
在composer.json引入 类包
"iidestiny/laravel-filesystem-oss": "^2",
在laravel项目下condfig下的filesystems.php下 增加uploads
disk驱动
'disks' => [ 'local' => [ 'driver' => 'local', 'root' => storage_path('app'), ], 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_URL').'/storage', 'visibility' => 'public', ], 's3' => [ 'driver' => 's3', 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'region' => env('AWS_DEFAULT_REGION'), 'bucket' => env('AWS_BUCKET'), 'url' => env('AWS_URL'), ], 'oss' => [ 'driver' => 'oss', 'root' => '', // 设置上传时根前缀 'access_key' => env('OSS_ACCESS_KEY'), 'secret_key' => env('OSS_SECRET_KEY'), 'endpoint' => env('OSS_ENDPOINT'), 'bucket' => env('OSS_BUCKET'), 'isCName' => env('OSS_IS_CNAME', false), // 如果 isCname 为 false,endpoint 应配置 oss 提供的域名如:`oss-cn-beijing.aliyuncs.com`,否则为自定义域名,,cname 或 cdn 请自行到阿里 oss 后台配置并绑定 bucket // 如果有更多的 bucket 需要切换,就添加所有bucket,默认的 bucket 填写到上面,不要加到 buckets 中 'buckets'=>[ 'test'=>[ 'access_key' => env('OSS_ACCESS_KEY'), 'secret_key' => env('OSS_SECRET_KEY'), 'bucket' => env('OSS_TEST_BUCKET'), 'endpoint' => env('OSS_TEST_ENDPOINT'), 'isCName' => env('OSS_TEST_IS_CNAME', false), ], //... ], ], ],
接下来在OssController.php中写入上传图片和处理图片回调接口
<?php namespace App\Http\Controllers\Admin; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Storage; class OssController extends Controller { public function show() { $disk = Storage::disk('oss'); $callBackUrl = url('/aaaa/ooo_callback'); $config = $disk->signatureConfig($prefix = 'upload/images/', $callBackUrl, $customData = [], $expire = 30); $config = json_decode($config); return response_json($config); } public function callback() { $disk = Storage::disk('oss'); list($verify, $data) = $disk->verify(); return response()->json($data); } }