對象存儲oos在yii2框架下使用

一、安裝
1.首先檢測自己的php環境
OSS PHP SDK只能在PHP 5.3以上版本中使用。
2.sdk的安裝
可以通過git下載文件包,進行文件引入使用。也可以通過composer進行安裝(推薦使用composer安裝)。

在項目的根目錄運行composer require aliyuncs/oss-sdk-php

3.項目配置
以下演示以yii2框架爲主

  1. 首先進行相應的配置
    oos配置
    2.應用實例化

需要傳入的參數說明
$object 文件名
$filepath 文件物理路徑
實例化文件上傳

 public function upload($object, $filepath)
    {
        $accessKeyId = Yii::$app->params['oss']['accessKeyId'];                 //獲取阿里雲oss的accessKeyId
        $accessKeySecret = Yii::$app->params['oss']['accessKeySecret'];         //獲取阿里雲oss的accessKeySecret
        $endpoint = Yii::$app->params['oss']['endPoint'];                       //獲取阿里雲oss的endPoint
        $bucket = Yii::$app->params['oss']['bucket'];
        $oss = new OssClient($accessKeyId, $accessKeySecret, $endpoint);  //實例化OssClient對象
        $res = $oss->uploadFile($bucket,$object,$filepath);
        $url = $res['info']['url'];
        return $url;
    }

實例化文件刪除

public function delete($object)
    {
        $res = false;
        $bucket = Yii::$app->params['oss']['bucket'];    //獲取阿里雲oss的bucket
        if (self::$oss->deleteObject($bucket, $object)){ //調用deleteObject方法把服務器文件上傳到阿里雲oss
            $res = true;
        }
        return $res;
    }

實例化防盜鏈的url地址

//獲取防盜鏈的url地址
    public function geturl($object){
        $accessKeyId = Yii::$app->params['oss']['accessKeyId'];                 //獲取阿里雲oss的accessKeyId
        $accessKeySecret = Yii::$app->params['oss']['accessKeySecret'];         //獲取阿里雲oss的accessKeySecret
        $endpoint = Yii::$app->params['oss']['endPoint'];                       //獲取阿里雲oss的endPoint
        $bucket = Yii::$app->params['oss']['bucket'];
        $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
        $timeout = 3600;
        //$options = array(OssClient::OSS_PROCESS => "image/resize,m_lfit,h_100,w_100" );
        $signedUrl = $ossClient->signUrl($bucket, $object, $timeout, "GET");
        return $signedUrl;
    }

實例化防盜鏈的縮略圖

 public function getminurl($object){
        $accessKeyId = Yii::$app->params['oss']['accessKeyId'];                 //獲取阿里雲oss的accessKeyId
        $accessKeySecret = Yii::$app->params['oss']['accessKeySecret'];         //獲取阿里雲oss的accessKeySecret
        $endpoint = Yii::$app->params['oss']['endPoint'];                       //獲取阿里雲oss的endPoint
        $bucket = Yii::$app->params['oss']['bucket'];
        $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
        $timeout = 3600;
        $options = array(OssClient::OSS_PROCESS => "image/resize,m_lfit,h_100,w_100" );
        $signedUrl = $ossClient->signUrl($bucket, $object, $timeout, "GET",$options);
        return $signedUrl;
    }

3.項目中使用
在用到的地方引入該文件,然後進行方法的調用即可。

  public function upload()
    {
        if ($this->validate()) {
            $request = new Request();
            $post = $request->bodyParams;
            $urls = [];
            foreach ($this->imageFiles as $k=> $file) {
                $filename = time().$k;
                $file->saveAs('D:\phpstudy_pro\WWW\ubossAPIs\web'.$k . $filename . '.' . $file->extension);
                $filepath = "D:\phpstudy_pro\WWW\ubossAPIs\web" .$k. $filename. '.' . $file->extension;
                $list[] = $filepath;
            }
            foreach ($list as $k =>$v){
                $filepath = $v;
                $OOS = new Aliyunoss;
                $object =time().$k;
                $res =  $OOS->upload($object,$filepath);
                if($res){
                    unlink($v);
                }
                $urls[] = $res;
            }
            $data = implode(',',$urls);
            return $data;
        } else {
            return false;
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章