騰訊雲存儲PHP上傳實例【代碼示例】


最近遇到一個項目,考慮到會上傳大量的手機照片,而手機的照片尺寸比較大,服務器增加存儲盤來存照片,成本太大,最終考慮是用雲存儲,成本降了很多,服務器買的是騰訊的,所以使用的是騰訊的雲存儲。

簡單代碼示例:

第一步:首先下載騰訊雲存儲的SDK(cos-php-sdk-v5)

配置具體的參數:(具體的參數配置參考騰訊雲COS存儲,新建存儲桶,獲取秘鑰等)

具體代碼:

// 初始化COS
private function initCos(){
    require './cosphpsdkv5/index.php';
    $secretId = "AKIDay6aaaaaaaaaawsh2A2"; //"雲 API 密鑰 SecretId";
    $secretKey = "rUqzrLdddddddddddddddddvwkHZa"; //"雲 API 密鑰 SecretKey";
    $region = "ap-nanjing"; //設置一個默認的存儲桶地域
    $cosClient = new \Qcloud\Cos\Client(
        array(
            'region' => $region,
            'schema' => 'http', //協議頭部,默認為http
            'credentials'=> array(
                'secretId'  => $secretId ,
                'secretKey' => $secretKey
            )
        )
    );
    return $cosClient;
}

上傳代碼示例:

代碼示例:

public function cosupload(){
    set_time_limit(0);//防止上傳大文件超時
    // 判斷上傳的文件類型
    $types = 'image'; // 圖片類型
    if (!in_array($types,explode('/',$file['type']))) {
        return json_encode(['code' => 0, 'msg' => '類型錯誤,不支持的文件類型', 'off' => 0]);
    }
    // 圖片目錄
    $imgdirectory = "picture";
    $bucket = "picture-1255572032"; // 存儲桶名稱
    $filename = explode('.', $file['name']);
    $key = date('Ymd').'/'.md5(time().'http://' . $_SERVER['HTTP_HOST'].rand(0,9999)).'.'.end($filename);
    $cosClient = $this->initCos();
    try{
        $result = $cosClient->putObject(array(
            'Bucket' => $bucket,
            'Key' => $key,
            'Body' => fopen($file['tmp_name'], 'rb') 
        ));
        var_dump($result);
    }catch(\Exception $e){
        echo "$e\n";
    }
    // try{            
    //     // $result = $cosClient->putObject(array(
    //     //     'Bucket' => $bucket,
    //     //     'Key' => $key,
    //     //     'Body' => '說的不錯呀~'
    //     // ));
    //     $result = 
    // }catch(\Exception $e){
    //     echo "$e\n";
    // }
}

遇到的問題,圖片上傳成功,但是直接訪問,訪問不了,原因是:存儲桶的權限是私有讀寫,需要sign簽名才能讀取,但是可以修改權限,共有讀私有寫,或者共有讀寫就行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM