1、在composer.json中添加插件"freyo/flysystem-qcloud-cos-v5": "^2.0", 然后执行composer update
2、在config/app.php中添加如下语句:
'providers' => [
// ...
Freyo\Flysystem\QcloudCOSv5\ServiceProvider::class,
]
3、在config/filesystems.php添加如下语句:
'disks'=>[
// ...
'cosv5' => [
'driver' => 'cosv5',
'region' => env('COSV5_REGION', 'ap-guangzhou'),
'credentials' => [
'appId' => env('COSV5_APP_ID'),
'secretId' => env('COSV5_SECRET_ID'),
'secretKey' => env('COSV5_SECRET_KEY'),
'token' => env('COSV5_TOKEN'),
],
'timeout' => env('COSV5_TIMEOUT', 60),
'connect_timeout' => env('COSV5_CONNECT_TIMEOUT', 60),
'bucket' => env('COSV5_BUCKET'),
'cdn' => env('COSV5_CDN'),
'scheme' => env('COSV5_SCHEME', 'https'),
'read_from_cdn' => env('COSV5_READ_FROM_CDN', false),
'cdn_key' => env('COSV5_CDN_KEY'),
'encrypt' => env('COSV5_ENCRYPT', false),
],
],
4、在.env中添加如下语句:
COSV5_APP_ID=
COSV5_SECRET_ID=
COSV5_SECRET_KEY=
COSV5_TOKEN=null
COSV5_TIMEOUT=60
COSV5_CONNECT_TIMEOUT=60
COSV5_BUCKET=
COSV5_REGION=ap-guangzhou
COSV5_CDN=
COSV5_SCHEME=https
COSV5_READ_FROM_CDN=false
COSV5_CDN_KEY=
COSV5_ENCRYPT=false
5、修改.env文件 FILESYSTEM_DRIVER=local 改成 FILESYSTEM_DRIVER=cosv5
6、修改config/admin.php中
'upload' => [
'disk' => 'public', 改成 'disk' => 'cosv5',
],
],
7、修改底层文件vendor/qcloud/cos-sdk-v5/src/Qcloud/Cos/Client.php
$body = Psr7\stream_for($body); 改成 $body = \GuzzleHttp\Psr7\Utils::streamFor($body);
8、修改底层文件vendor/qcloud/cos-sdk-v5/src/Qcloud/Cos/Request/BodyLocation.php
Psr7\stream_for($value) 改成 \GuzzleHttp\Psr7\Utils::streamFor($value)
9、获取上传文件地址前部分为:$host = \Storage::disk(config('admin.upload.disk'))->url('/');