目录

前言

一、安装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上传(超详细)相关推荐

  1. tp6腾讯云上传cos

    第一步: 下载腾讯php   SDK 下载地址 https://cos-sdk-archive-1253960454.file.myqcloud.com/cos-php-sdk-v5/latest/c ...

  2. 腾讯cos 上传php实例,tp5 接入腾讯对象存储COS

    以前写过一个接入阿里的OSS对象存储的,现在又简单写了个 腾讯COS对象存储. SDK 获取 1. GitHub #在GitHub中获取代码 https://github.com/tencentyun ...

  3. node+multer中间件实现单文件、多文件上传—超详细

    一.概念 Multer 是一个 node.js 中间件,用于处理 multipart/form-data 类型的表单数据,它主要用于上传文件. 注意: Multer 不会处理任何非 multipart ...

  4. 腾讯云COS上传下载文件

    1.初始化COSClient import com.qcloud.cos.COSClient; import com.qcloud.cos.ClientConfig; import com.qclou ...

  5. 腾讯云cos上传文件功能封装

    前言:要使用cos要先去腾讯云创建cos储存桶,创建完储存桶按步骤来就可以了. 安装依赖 npm i cos-js-sdk-v5 创建文件upload.js const COS = require(' ...

  6. 腾讯视频安卓版下载_腾讯课堂上传课程视频

    今天继续给大家分享腾讯视频方面的内容.腾讯视频手机版是一款装机必备的手机视频播放软件,用户可在线观看腾讯视频全部免费高清正版视频,海量内容,高清画质,自由点播,配合先进的P2P下载技术,一键高速缓存, ...

  7. 腾讯视频上传视频如何同步到企鹅号

    企鹅号是腾讯的一个非常棒的产品,让一大批自媒体人赚了钱,我们都知道腾讯视频和企鹅号是互通的,腾讯视频中的视频也可以同步到企鹅号中.所以今天播放器家园网小编教大家如何将视频进行同步. 腾讯视频上传视频如 ...

  8. 解析腾讯视频上传视频源地址网址

    公司最近想用小程序播放腾讯视频的视频,由于小程序的微信接口只是调用视频的vid就能进行播放,但是在pc网页上进行播放就要拿到视频的真实地址,然而实际上腾讯视频上传后只是给你一个:https://v.q ...

  9. 通过COS上传文件至腾讯云

    最近看了一下上传文件至腾讯云.腾讯官方提供的API,cloud.tencent.com/document/pr- 文档上传 文档上传首页要首先引入腾讯云封装好的cos-js-sdk-v5.js文件,然 ...

最新文章

  1. 集合与集合取笛卡尔积
  2. 14.1178亿人 流动人口超3亿 “大国普查”这些数据很重要
  3. python 定义字符串变量_Python变量和字符串详解
  4. 安卓案例:联选系部与专业
  5. TensorFlow HOWTO 1.1 线性回归
  6. securecrtp32位_SecureCRT 32位下载
  7. ❤️DDOS攻击详解❤️——万物互联时代的巨大威胁!安全领域最棘手的问题之一
  8. 宝塔部署node项目_SFF一站式node服务管理平台实践
  9. QTP基础教程(讲义)《软件测试技术》
  10. 哲学家进餐问题 C++实现
  11. rocketMQ启动
  12. dell服务器装系统键盘鼠标动不了,13G 服务器操作系统安装常见问题解答 (FAQ)
  13. Longhorn 云原生分布式块存储解决方案设计架构和概念
  14. jquery仿钉钉流程图制作。
  15. 情商高手与小白的言辞,差别究竟在哪里?
  16. springClude简单配置
  17. Bootstrap4 div居中
  18. 那年花一个钟用PS改证件照的背景色,今天用Excel我只花了60秒!
  19. Ubuntu下正确姿势使用GDB调试Android Native进程
  20. Unity和Cocos2D在2D游戏开发上的对比

热门文章

  1. 一辆特斯拉,长到一米八!硅谷IT男断腿增高,成医美狂魔?
  2. web前端入门到实战:css基础-定位+网页布局案例
  3. 蓝桥杯 算法训练 瓷砖铺放Python实现(递归)
  4. linux文件中的注释符号,Linux中特殊符号的作用
  5. [linux驱动开发] 基于gpiod API的platform总线多个led驱动开发
  6. 对话数字化经营新模式:第2届22客户节(22Day)年猪宴圆满结束!
  7. 机器学习——XGboost进行分类预测,模型优化的实战
  8. 集萃药康在科创板挂牌:市值已蒸发16亿元,超过IPO募资金额
  9. 越狱第三季12集出来了
  10. 大学计算机试卷分析报告,大学试卷分析报告范文