以前寫過一個接入阿裡的OSS對象存儲的,現在又簡單寫了個 騰訊COS對象存儲。 這裡只有COS使用方式,如果對接TP上傳 可以去參考 :http://www.cnblogs.com/inkwhite/p/8582077.html SDK 獲取 1. GitHub #在GitHub中獲取代碼 http ...
以前寫過一個接入阿裡的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'
/** * 騰訊對象存儲-文件上傳 * @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 '上傳失敗'; } }