騰訊雲存儲上傳文件前驗證聯合身份臨時訪問憑證

參考文檔:https://cloud.tencent.com/document/product/598/13896
參考github項目:https://github.com/tencentyun/qcloud-cos-sts-sdk/tree/master/php

下面是參考以上文檔寫的方法

/**
    * 獲取騰訊雲存儲聯合身份臨時訪問憑證
    * 用戶app端使用騰訊雲存儲進行文件上傳前進行身份驗證,驗證通過纔可上傳文件
    * 參考文檔:https://cloud.tencent.com/document/product/598/13896
    * 參考github項目:https://github.com/tencentyun/qcloud-cos-sts-sdk/tree/master/php
    * @return int code 操作碼,0表示成功
    * @return string msg 提示信息
    * @return array info 返回信息
    * @return string info[0].sessionToken 返回驗證token
    * @return string info[0].tmpSecretId 返回臨時secretid
    * @return string info[0].tmpSecretKey 返回臨時secretkey
    * @return string info[0].requestId 返回requestId
    * @return string info[0].expiredTime 返回expiredTime 有效日期截止時間
    */

public function getTxCosFederationToken(){

        $rs=array('code'=>0,"msg"=>"","info"=>array());

        require_once(API_ROOT.'/../sdk/tencentSts/sts/sts.php');  //根據自己的文件引入路徑自行修改
        $sts = new STS();
        

        $config = array(
            'url' => 'https://sts.tencentcloudapi.com/',
            'domain' => 'sts.tencentcloudapi.com',
            'proxy' => '',
            'secretId' => '', // 騰訊雲存儲secretid密鑰
            'secretKey' => '', // 騰訊雲存儲secretkey
            'bucket' => '', // bucket-appid,如:ceshi-1255549201
            'region' => '', // 換成 bucket 所在地區 如ap-shanghai
            'durationSeconds' => 1800, // 密鑰有效期
            'allowPrefix' => '*', // 這裏改成允許的路徑前綴,可以根據自己網站的用戶登錄狀態判斷允許上傳的具體路徑,例子: a.jpg 或者 a/* 或者 * (使用通配符*存在重大安全風險, 請謹慎評估使用)
            // 密鑰的權限列表。簡單上傳和分片需要以下的權限,其他權限列表請看 https://cloud.tencent.com/document/product/436/31923
            'allowActions' => array (
                // 簡單上傳
                'name/cos:PutObject',
                'name/cos:PostObject',
                // 分片上傳
                'name/cos:InitiateMultipartUpload',
                'name/cos:ListMultipartUploads',
                'name/cos:ListParts',
                'name/cos:UploadPart',
                'name/cos:CompleteMultipartUpload'
            )
        );

        // 獲取臨時密鑰,計算簽名
        $tempKeys = $sts->getTempKeys($config);

        $info['sessionToken']=$tempKeys['credentials']['sessionToken'];
        $info['tmpSecretId']=$tempKeys['credentials']['tmpSecretId'];
        $info['tmpSecretKey']=$tempKeys['credentials']['tmpSecretKey'];
        $info['requestId']=$tempKeys['requestId'];
        $info['expiredTime']=(string)$tempKeys['expiredTime'];

        $rs['info'][0]=$info;

        return $rs;
    }

 

最後返回的內容結構如下:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章