关于阿里云上传图片回调上传相关

首先用的是回调方式,接下来 我们看看对应流程。

在开发之前 先获取到阿里云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);
    }

}

猜你喜欢

转载自blog.csdn.net/qq_42082023/article/details/125998470