因项目需要,本来是需要对接阿里云oss,但因客户错误将云存储买成腾讯云cos,因此简单做了个对象上传使用

首先下载cos的sdk:

三种方式在文档上面都有介绍

SDK 安装有三种方式:Composer 方式Phar 方式 和 源码方式

本渣用的是最low 的源码方式

下载完成后解压放至TP5的第三方类库extend/下(感觉文件名太长本渣将解压后的sdk文件名改为了sdk):

然后说下腾讯云cos的配置参数:

其中SecretId和SecretKey参数在腾讯云-》对象存储-》秘钥管理获得

bucket 参数可直接请求接口,也可同样在腾讯云-》对象存储-》存储桶列表直接创建

return [
'QCLOUD' => [
'appId' => '******', //账户中心的 APPid
'SecretId' => '******', //开发者拥有的项目身份识别 ID
'SecretKey' => '******', //开发者拥有的项目身份密钥
'region' => 'bj', //你的Bucket所有地域 例如上海 (sh)写简称就可以
'bucket' => '******' //COS中用于存储桶名称
],
];

其中region 地区在文档上也有介绍:

以下是对应的地区简称(了解就行):

//地域缩写
'cn-east'=>'ap-shanghai',
'cn-sorth'=>'ap-guangzhou',
'cn-north'=>'ap-beijing-1',
'cn-south-2'=>'ap-guangzhou-2',
'cn-southwest'=>'ap-chengdu',
'sg'=>'ap-singapore',
'tj'=>'ap-beijing-1',
'bj'=>'ap-beijing',
'sh'=>'ap-shanghai',
'gz'=>'ap-guangzhou',
'cd'=>'ap-chengdu',
'sgp'=>'ap-singapore'

最后就是简单的对象上传请求了

SDK 放在 根目录下/extend/

我的路径/extend/sdk

其中

saveName 是你文件上传的文件名称 注意路径 "/" window下的是 "\" 这样的话上传上去不会自动创建文件夹。

pathname 你要上传的本地文件地址

    /**
* 腾讯云Cos -- 上传对象
*/
function qcloudCosUpload($file = '' , $info = array() , $fileInfo)
{
if( !$file || !$info ){
return json_error('缺失参数 ');
}
//引用COS sdk
\think\Loader::import('sdk.vendor.autoload');
$cosClient = new \Qcloud\Cos\Client(
array(
'region' => config('QCLOUD.region'),
'credentials' => array(
'appId' => config('QCLOUD.appId'),
'secretId' => config('QCLOUD.SecretId'),
'secretKey' => config('QCLOUD.SecretKey')
)
)
);
$file = $info['pathname'];
try {
$data = array( 'Bucket' => config('QCLOUD.bucket'), 'Key' => $info['saveName'], 'Body' => fopen($file, 'rb') );
//判断文件大小 大于5M就分块上传
$result = $cosClient->Upload( $data['Bucket'] , $data['Key'] , $data['Body'] ); if( $result ){
return $result;
}
} catch (\Exception $e) {
return json_error('上传失败 ');
} }

至此,简单的上传对象即已完成。

感谢您的查看。

本文主要借鉴于:https://www.cnblogs.com/inkwhite/p/9057339.html

再次感谢墨白`Blog 大大的博客分享。

2019年05月09日

最新文章

  1. knockoutjs(二)
  2. js平滑返回顶部代码
  3. Hibernate用注解实现实体类和表的映射
  4. BZOJ1085: [SCOI2005]骑士精神
  5. nginx https ssl 设置受信任证书[原创]
  6. Audio Session Interruption
  7. HTTP中的摘要认证机制
  8. C#解析Json(多方法解析Json 一)
  9. java classpath深入详解(转)
  10. Linux模式设计系列( 内核与应用关联思考)
  11. 在Oracle中查询表的大小、表的占用情况和表空间的大小
  12. Mysql常用命令行大全(转)
  13. LeetCode: Best Time to Buy and Sell Stock II [122]
  14. Unity中的CG编写Shader系列(Blend)
  15. 《疯狂java讲义》读后感
  16. Python基础之注释,算数运算符,变量,输入和格式化输出
  17. 连接mysql报zone时区错误
  18. ubuntu10.04 搭建海思开发环境
  19. [转载] mysql 索引中的USING BTREE 的意义
  20. python + lisp hy的新手注记1

热门文章

  1. MFC的CString使用
  2. lightoj 1076 【二分找满足条件的最左】
  3. 求无向图的割点和桥模板(tarjan)
  4. web框架原理,http 协议
  5. 【Aizu - ALDS1_7_A】Rooted Trees(树的表达)
  6. IP服务-1-ARP和代理ARP
  7. 洛谷 P1094 纪念品分组
  8. [译]Understanding ECMAScript6 基本知识
  9. Unity Shader入门精要学习笔记 - 第15章 使用噪声
  10. 能挣钱的微信JSSDK+H5混合开发