tp5 接入騰訊對象存儲COS


以前寫過一個接入阿里的OSS對象存儲的,現在又簡單寫了個 騰訊COS對象存儲。

這里只有COS使用方式,如果對接TP上傳 可以去參考 :http://www.cnblogs.com/inkwhite/p/8582077.html 

 

SDK 獲取

1. GitHub

#在GitHub中獲取代碼
https://github.com/tencentyun/cos-php-sdk-v5


騰訊的參數比阿里的參數要多

 

appId  賬戶中心的 APPid

SecretId 開發者擁有的項目身份識別 ID,用以身份認證
secretKey 開發者擁有的項目身份密鑰
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'

 thinkphp引用第三方類庫

 SDK 放在 根目錄下/extend/

我的路徑/extend/qcloud/cos-sdk-v5

 //引用COS sdk
 \think\Loader::import('qcloud.cos-sdk-v5.cos-autoloader'); 
/**
     * 騰訊對象存儲-文件上傳
     * @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 '上傳失敗';
        }

    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM