tp5 接入腾讯对象存储COS

以前写过一个接入阿里的OSS对象存储的,现在又简单写了个 腾讯COS对象存储。

这里只有COS使用方式,如果对接TP上传 可以去参考 :http://www.cnblogs.com/inkwhite/p/8582077.html

SDK 获取

1. GitHub

#在GitHub中获取代码<br />
https://github.com/tencentyun/cos-php-sdk-v5<br /><br />腾讯的参数比阿里的参数要多<br /><br />
appId  账户中心的 APPid<br /><br />SecretId 开发者拥有的项目身份识别 ID,用以身份认证
<em>secretKey 开发者拥有的项目身份密钥<br /></em>
region 你的Bucket所有地域 例如上海 (sh)写简称就可以
bucket  COS中用于存储数据的容器
Key  你文件上传的文件名称  (例:20180818/xxx.jpg)  注意路径 "/" window下的是 "\" 这样的话上传上去不会自动创建文件夹。
file 你要上传的本地文件地址
请求错误码:https://cloud.tencent.com/document/product/436/7730
'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'
/**
     * 腾讯对象存储-文件上传
     * @datatime 2018/05/17 09:20
     * @author lgp
     */
    public function qcloudCosUpload( $file = '' , $info = array() , $fileInfo  ){
        if( !$file  || !$info ){
            return '缺少参数';
        }
        //引用COS sdk
        \think\Loader::import('qcloud.cos-sdk-v5.cos-autoloader'); 
        $cosClient = new \Qcloud\Cos\Client(
            array(
                'region'      => config('QCLOUD_COS.region'),
                'credentials' => array(
                    'appId'     => config('QCLOUD_COS.appId'),
                    'secretId'  => config('QCLOUD_COS.SecretId'),
                    'secretKey' => config('QCLOUD_COS.SecretKey')
                )
            )
        );
        $file = $info['pathname'];
        try {
            $data = array( 'Bucket' => config('QCLOUD_COS.bucket'), 'Key'  => $info['saveName'], 'Body' => fopen($file, 'rb') );
            //判断文件大小 大于5M就分块上传
            $result = $cosClient->Upload( $data['Bucket'] , $data['Key'] , $data['Body']  );

            //上传成功,自己编码
            if( $result ){
                if( config('QCLOUD_COS.unlink_file') == 1){
                    //是否删除本地
                    //unlink($file);
                }
                return 'ok';
            }
        } catch (\Exception $e) {
            echo "$e\n";die;
            return '上传失败';
        }

    }
tp5 接入腾讯对象存储COS

相关推荐