Laravel 使用腾讯云 cos 进行图片上传使用详解
使用指南
Laravel版本
我用的版本是:Laravel 6.2
开通腾讯云COS
具体的请看详情:cloud.tencent.com/document/product...
安装插件
composer require "freyo/flysystem-qcloud-cos-v5:^2.0"
具体使用
配置 config/filesystems.php
'cloud' => env('FILESYSTEM_CLOUD', 'cosv5'),
'disks' => [
// 腾讯云 cos 存储
'cosv5' => [
'driver' => 'cosv5',
'region' => env('COSV5_REGION', 'ap-shanghai'), // 需要设置
'credentials' => [
'appId' => env('COSV5_APP_ID'), // 需要设置
'secretId' => env('COSV5_SECRET_ID'), // 需要设置
'secretKey' => env('COSV5_SECRET_KEY'), // 需要设置
],
'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'),
],
],
查看 region和bucket 参数:console.cloud.tencent.com/cos5/buc...
获取API密匙:console.cloud.tencent.com/cam/capi
上传代码
$file = $request->avatar; // 获取上传文件对象,name 为 avatar
$disk = \Storage::disk('cosv5');
$path = $disk->put('images', $file); // images 为存储桶里面的目录名称;这里生成的是唯一的文件名,也可指定文件名,具体请看下方的文档链接
$url = $disk->url($path); // 获取上传文件的url
- 注意事项
- 无需在 config/app.php 引入 providers
- 无需进行任何的 use 引入
- 具体的使用可查看文档:文件存储《Laravel 6 中文文档》
- 获取的url,默认情况下是不能直接访问图片的,如果需要访问图片,需要修改存储桶的访问权限:公有读私有写
Laravel-admin上传图片
配置 config/admin.php
'upload' => [
// 只需把 disk 设为 cosv5 就可以了
'disk' => 'cosv5',
.
.
.
],
使用技巧
'upload' => [
// 设置多个磁盘
'disk' => 'cosv5', 'admin',
.
.
.
],
// 使用的时候指定磁盘:->disk($disk_name)
$form->image('icon', '图标')->disk('admin')->uniqueName()->move('images/icon')->required();
需要注意的是: 如果使用多个磁盘进行上传,路径的显示有些问题,需要保存绝对路径才行,这里我还没处理好,有使用过的请指教下怎么处理。
使用自定义源站域名
如果要使用自己的域名替换默认的域名,只需要两个步骤:
- 新增【自定义源站域名】
- 设置对应的域名解析
如有疑问可查看官方文档:cloud.tencent.com/document/product...
流程基本上就这样了,公司项目刚好要用到云存储。完成后写个笔记,方便自己以后查阅,也希望能帮助到有需要的朋友。2021-09-04。
本作品采用《CC 协议》,转载必须注明作者和本文链接
laravel 9 好像不行了
Driver [cosv5] is not supported.