首先用的是回调方式,接下来 我们看看对应流程。
在开发之前 先获取到阿里云oss相关
在composer.json引入 类包
"iidestiny/laravel-filesystem-oss": "^2",
在laravel项目下condfig下的filesystems.php下 增加uploadsdisk驱动
'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);
}
}
本文介绍了如何在 Laravel 项目中使用阿里云OSS作为文件存储,并通过回调方式实现图片上传及处理,包括Composer安装、filesystems.php配置和OSSController中的接口编写。
685

被折叠的 条评论
为什么被折叠?



