1. 程式人生 > >ThinkPHP3.2整合七牛雲第三方sdk

ThinkPHP3.2整合七牛雲第三方sdk

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

分為兩種呼叫方法,請大家自行選擇

//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