TP6 腾讯COS上传(超详细)
目录
前言
一、安装SDK
二、项目配置
1.创建存储桶
2.密钥管理
三、项目操作代码
1:操作
总结
前言
工具:腾讯cos
框架:Think PHP6
一、安装SDK
在右上角这里点击控制台/登录账号
腾讯云 - 产业智变 云启未来
选择对象存储
选择SDK下载 对象存储 快速入门 - SDK 文档 - 文档中心 - 腾讯云
选择安装方式
vendor文件里面包含 SDK 的依赖库和一个 autoload.php 脚本
二、项目配置
1.创建存储桶
我创建的时候key未填
2.密钥管理
记录下 id 和 key
三、项目操作代码
用户在上传视频或者图片时的流程:
我们先将文件保存在本地,本地作为中转站再上传到COS
COS上传成功之后返回文件地址给我们,我们拿到地址后删除本地文件并将返回地址存入数据库
1:操作
控制器前端访问的上传接口:
<?phpdeclare(strict_types=1);namespace app\index\controller\UpVideo;use app\index\model\video; //引入数据存储表
use app\index\Token\Token; //TOKEN
use think\facade\Request; //门面类class Index extends Token
{/*** remarks:上传视频** @return \think\Response*/public function index(){// 获取表单上传文件$files = request()->file();try {validate(['image' =>'fileSize:10240|fileExt:jpg,png,mp4|image:200,200,jpg'])->check($files);$path = [];foreach ($files as $file) {//接收文件存入public文件中的topic中生成以日期为目录名的文件$path = \think\facade\Filesystem::disk('public')->putFile('topic', $file);//转义文件格式$srcPath = \think\facade\Filesystem::getDiskConfig('public', 'root') . '/' . str_replace('\\', '/', $path);if (!empty($srcPath)) {//获取上传文件的后缀(这里会将文件分成地址、后缀的一维数组,取后缀的下标1)$url = parse_url($srcPath);$str = explode('.', $url['path']);$ext = $str[1];//实例化COS上传层$Service = new Service();//这将本地地址和后缀两个参数带过去,这里的地址是完整的本地路径$data = $Service->index(str_replace('\\', '/', $srcPath), $ext);//接收COS返回路径值存入数据库if ($data != "" || $data != null) {$content = request::only(['content']);$videoModel = new video();$videoModel->save(['userid' => $this->uid,'content' => $content['content'],'url' => $data]);if ($videoModel == true) {unlink($path); //删除本地文件return json(['code' => 1, 'data' => $data, 'msg' => '上传成功']); //返回给前端} else {return $data;}}}}} catch (\think\exception\ValidateException $e) {return json(['code' => 0, 'msg' => $e->getMessage()]);}}
}
完整的路径参数是绝对路径
获取本地绝对路径:
<?phpreturn [// 默认磁盘'default' => env('filesystem.driver', 'local'),// 磁盘列表'disks' => ['local' => ['type' => 'local','root' => app()->getRuntimePath() . '',],'public' => [// 磁盘类型'type' => 'local',// 磁盘路径'root' => app()->getRootPath() . 'public',// 磁盘路径对应的外部URL路径'url' => 'http://' . $_SERVER['HTTP_HOST'],// 可见性'visibility' => 'public',],// 更多的磁盘配置信息],
];
控制器Index访问的Service上传接口:
<?phpdeclare(strict_types=1);namespace app\index\controller\UpVideo;use Qcloud\Cos\Client;class Service
{/*** 显示资源列表** @return \think\Response*/public function index($srcPath, $ext){//引入 autoload.php 文件:根据自己的文件结构变换路径require dirname(__FILE__) . '../../../../../vendor/autoload.php';//配置密钥$secretId = "SECRETID"; //替换成自己的id$secretKey = "SECRETKEY"; //替换成自己的key$region = "ap-chengdu"; //替换成创建储存桶时选择的区域$cosClient = new Client(array('region' => $region,'schema' => 'https', //协议头部,默认为http'credentials' => array('secretId' => $secretId,'secretKey' => $secretKey)));### 上传文件流try {$bucket = 'name-**********'; //存储桶名称 格式:BucketName-APPID$key = mt_rand(1, 100) . '.' . $ext; //此处的 key 为对象键,对象键是对象在存储桶中的唯一标识$file = fopen($srcPath, "rb");if ($file) {$result = $cosClient->putObject(array('Bucket' => $bucket,'Key' => $key,'Body' => $file));//将路径返回到前端访问的上传接口中return 'https://...这里放储存桶的请求域名' . $key; print_r($result);}} catch (\Exception $e) {return json_encode(["code" => 0, "msg" => $e->getMessage()]);}}
}
COS返回的路径格式
上传成功后的储存桶
总结
分享是温故知新
TP6 腾讯COS上传(超详细)相关推荐
- tp6腾讯云上传cos
第一步: 下载腾讯php SDK 下载地址 https://cos-sdk-archive-1253960454.file.myqcloud.com/cos-php-sdk-v5/latest/c ...
- 腾讯cos 上传php实例,tp5 接入腾讯对象存储COS
以前写过一个接入阿里的OSS对象存储的,现在又简单写了个 腾讯COS对象存储. SDK 获取 1. GitHub #在GitHub中获取代码 https://github.com/tencentyun ...
- node+multer中间件实现单文件、多文件上传—超详细
一.概念 Multer 是一个 node.js 中间件,用于处理 multipart/form-data 类型的表单数据,它主要用于上传文件. 注意: Multer 不会处理任何非 multipart ...
- 腾讯云COS上传下载文件
1.初始化COSClient import com.qcloud.cos.COSClient; import com.qcloud.cos.ClientConfig; import com.qclou ...
- 腾讯云cos上传文件功能封装
前言:要使用cos要先去腾讯云创建cos储存桶,创建完储存桶按步骤来就可以了. 安装依赖 npm i cos-js-sdk-v5 创建文件upload.js const COS = require(' ...
- 腾讯视频安卓版下载_腾讯课堂上传课程视频
今天继续给大家分享腾讯视频方面的内容.腾讯视频手机版是一款装机必备的手机视频播放软件,用户可在线观看腾讯视频全部免费高清正版视频,海量内容,高清画质,自由点播,配合先进的P2P下载技术,一键高速缓存, ...
- 腾讯视频上传视频如何同步到企鹅号
企鹅号是腾讯的一个非常棒的产品,让一大批自媒体人赚了钱,我们都知道腾讯视频和企鹅号是互通的,腾讯视频中的视频也可以同步到企鹅号中.所以今天播放器家园网小编教大家如何将视频进行同步. 腾讯视频上传视频如 ...
- 解析腾讯视频上传视频源地址网址
公司最近想用小程序播放腾讯视频的视频,由于小程序的微信接口只是调用视频的vid就能进行播放,但是在pc网页上进行播放就要拿到视频的真实地址,然而实际上腾讯视频上传后只是给你一个:https://v.q ...
- 通过COS上传文件至腾讯云
最近看了一下上传文件至腾讯云.腾讯官方提供的API,cloud.tencent.com/document/pr- 文档上传 文档上传首页要首先引入腾讯云封装好的cos-js-sdk-v5.js文件,然 ...
最新文章
- 集合与集合取笛卡尔积
- 14.1178亿人 流动人口超3亿 “大国普查”这些数据很重要
- python 定义字符串变量_Python变量和字符串详解
- 安卓案例:联选系部与专业
- TensorFlow HOWTO 1.1 线性回归
- securecrtp32位_SecureCRT 32位下载
- ❤️DDOS攻击详解❤️——万物互联时代的巨大威胁!安全领域最棘手的问题之一
- 宝塔部署node项目_SFF一站式node服务管理平台实践
- QTP基础教程(讲义)《软件测试技术》
- 哲学家进餐问题 C++实现
- rocketMQ启动
- dell服务器装系统键盘鼠标动不了,13G 服务器操作系统安装常见问题解答 (FAQ)
- Longhorn 云原生分布式块存储解决方案设计架构和概念
- jquery仿钉钉流程图制作。
- 情商高手与小白的言辞,差别究竟在哪里?
- springClude简单配置
- Bootstrap4 div居中
- 那年花一个钟用PS改证件照的背景色,今天用Excel我只花了60秒!
- Ubuntu下正确姿势使用GDB调试Android Native进程
- Unity和Cocos2D在2D游戏开发上的对比
热门文章
- 一辆特斯拉,长到一米八!硅谷IT男断腿增高,成医美狂魔?
- web前端入门到实战:css基础-定位+网页布局案例
- 蓝桥杯 算法训练 瓷砖铺放Python实现(递归)
- linux文件中的注释符号,Linux中特殊符号的作用
- [linux驱动开发] 基于gpiod API的platform总线多个led驱动开发
- 对话数字化经营新模式:第2届22客户节(22Day)年猪宴圆满结束!
- 机器学习——XGboost进行分类预测,模型优化的实战
- 集萃药康在科创板挂牌:市值已蒸发16亿元,超过IPO募资金额
- 越狱第三季12集出来了
- 大学计算机试卷分析报告,大学试卷分析报告范文