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