ThinkPHP3.2整合七牛雲第三方sdk
阿新 • • 發佈:2019-01-11
ThinkPHP3.2整合七牛雲最新第三方sdk,版本Release v7.1.3
感覺ThinkPHP對第三方的sdk的支援不是特別友好,這次使用七牛雲sdk時就是這個問題,雖然ThinkPHP有自帶的七牛上傳驅動,但是肯定不如七牛自己更新的sdk好,畢竟是很久之前的版本了。
想使用ThinkPHP自帶的七牛雲可以參考我的另外一篇文章:http://www.thinkphp.cn/topic/46397.html
下面說一下如何整合新版七牛雲sdk
第一步,註冊七牛雲,建立空間,下載sdk這些就不說了
第二步,修改七牛雲sdk檔案的命名格式和sdk檔案裡面的名稱空間
這裡有一個小問題還望高手給予指點
因為七牛雲sdk也使用了名稱空間,但是檔案命名不符合ThinkPHP的規範,這種情況該放到哪裡呢?
目前我有兩種做法
一種是直接放到專案的Application目錄下,這樣可以直接修改檔案命名就好,不用修改sdk檔案裡面的名稱空間
另外一種是放到專案的Application\Tool目錄下(所有的第三方類都放到這個目錄下),不過這樣的缺點就是修改七牛雲sdk檔案的命名格式和sdk檔案裡面的名稱空間(吐槽一下,還好七牛雲sdk檔案不算太多,不然一個個修改也是一個大工程,如果有高手有更好的方法歡迎指點)
第三步,呼叫sdk
感覺ThinkPHP對第三方的sdk的支援不是特別友好,這次使用七牛雲sdk時就是這個問題,雖然ThinkPHP有自帶的七牛上傳驅動,但是肯定不如七牛自己更新的sdk好,畢竟是很久之前的版本了。
想使用ThinkPHP自帶的七牛雲可以參考我的另外一篇文章:http://www.thinkphp.cn/topic/46397.html
下面說一下如何整合新版七牛雲sdk
第一步,註冊七牛雲,建立空間,下載sdk這些就不說了
第二步,修改七牛雲sdk檔案的命名格式和sdk檔案裡面的名稱空間
這裡有一個小問題還望高手給予指點
因為七牛雲sdk也使用了名稱空間,但是檔案命名不符合ThinkPHP的規範,這種情況該放到哪裡呢?
目前我有兩種做法
一種是直接放到專案的Application目錄下,這樣可以直接修改檔案命名就好,不用修改sdk檔案裡面的名稱空間
另外一種是放到專案的Application\Tool目錄下(所有的第三方類都放到這個目錄下),不過這樣的缺點就是修改七牛雲sdk檔案的命名格式和sdk檔案裡面的名稱空間(吐槽一下,還好七牛雲sdk檔案不算太多,不然一個個修改也是一個大工程,如果有高手有更好的方法歡迎指點)
第三步,呼叫sdk
分為兩種呼叫方法,請大家自行選擇
//use \Qiniu\Auth; //use \Qiniu\Storage\UploadManager; use \Tool\Qiniu\Auth; use \Tool\Qiniu\Storage\UploadManager; public function uploadQiNiu(){ //import('Qiniu.functions'); import('Tool.Qiniu.functions'); // 用於簽名的公鑰和私鑰 $accessKey = '**'; $secretKey = '**'; // 初始化籤權物件 $auth = new Auth($accessKey, $secretKey); // 空間名 https://developer.qiniu.io/kodo/manual/concepts $bucket = 'bucket-name'; // 生成上傳Token $token = $auth->uploadToken($bucket); echo $token;exit; // 構建 UploadManager 物件 $uploadMgr = new UploadManager(); // 上傳檔案到七牛 $filePath = './php-logo.png'; $key = 'php-logo.png'; list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath); echo "\n====> putFile result: \n"; if ($err !== null) { var_dump($err); } else { var_dump($ret); } }
http://download.csdn.net/detail/baikeliang/9766595
裡面共享我已經修改好的sdk檔案,版本Release v7.1.3