一、从腾讯云控制台中开通cos
二、下载cos的sdk。SDK 安装有三种方式:Composer 方式、Phar 方式 和 源码方式。
本章用的最笨的源码方式。
下载完成后解压放至TP5的第三方类库extend/下(感觉文件名太长可以将文件名改了我的就叫tengxunyun)
然后说下腾讯云cos的配置参数:
appid个人实名认证中获得
其中SecretId和SecretKey参数在腾讯云-》对象存储-》秘钥管理获得
bucket 参数可直接请求接口,也可同样在腾讯云-》对象存储-》存储桶列表直接创建
$region = config(‘tengxunyun_cos.endpoint’); //你的Bucket所有地域 例如上海 (ap-shanghai)写简称就可以
$appId = config(‘tengxunyun_cos.appId’); //账户中心的 APPid
$secretId = config(‘tengxunyun_cos.SecretId’); //开发者拥有的项目身份识别 ID
$secretKey = config(‘tengxunyun_cos.SecretKey’); //开发者拥有的项目身份密钥
// 存储空间名称
$bucket = config('tengxunyun_cos.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’
简单的对象上传请求:
/**
* 腾讯云Cos – 上传对象
*
*
*
*/
private function qcloudCosUpload($file_name = ‘file’)
{
require_once env('root_path').'extend'.DIRECTORY_SEPARATOR.'tenxunyun'.DIRECTORY_SEPARATOR.'vendor'.DIRECTORY_SEPARATOR.'autoload.php';
$key = upload($file_name);
$region = config('tengxunyun_cos.endpoint');
$appId = config('tengxunyun_cos.appId');
$secretId = config('tengxunyun_cos.SecretId');
$secretKey = config('tengxunyun_cos.SecretKey');
// 存储空间名称
$bucket = config('tengxunyun_cos.bucket');
// $secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
// $secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
// $region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
$cosClient = new \Qcloud\Cos\Client(
- List item
//方法的路径一定要写对,否则一直报错,小编就调了两个小时
array(
‘region’ => $region,
‘schema’ => ‘https’, //协议头部,默认为http
‘credentials’=> array(
‘secretId’ => $secretId,
‘secretKey’ => $secretKey
)
)
);
try {
$result = $cosClient->putObject(array(
'Bucket' => $bucket, //格式:BucketName-APPID
'Key' => $key['data'],
'Body' => fopen($key['img'], 'rb'), //这里一定要填写正确,否则上传到cos的文件全是0kb
));
// 请求成功
if($result){
unlink($key['img']); //删除本地文件
$resData['code'] = 200;
$resData['data'] = "https://" . $result['Location'];;
return $resData;
}
// return $result;
} catch (Exception $e) {
// 请求失败
$resData['code'] = 201;
$resData['data'] = '';
return $resData;
// echo($e);
}
}
至此,简单的上传对象就完成了,我从网上找了很多,后来自己琢磨出来的,希望对你有帮助!!