tp5 -- 騰訊雲cos簡單使用


因項目需要,本來是需要對接阿里雲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日

 


免責聲明!

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



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