YII2調用天翼雲OOS 對象存儲服務

前言

本文僅適用於新接觸對象存儲服務開發的新人,對於非常熟悉對象開發的人來說會發現其實都一樣,網上有很多阿里雲Oss的開發教程,甚至有composer 的安裝方法,非常方便,但是如果新人接觸對象存儲開發,且選用了天翼雲的OOS服務,那麼希望以下的內容能幫助到你。

 

準備工作

一、OOS準備

1、可以選擇官網開通或聯繫當地中國電信客戶經理開通;

2、註冊開通後進入控制檯 ->點擊打開對象存儲服務

 

3、建議先創建1~2個容器用於測試

4、在訪問控制->安全憑證中創建祕鑰,具體請認真看說明

 

 

二、SDK準備

https://www.ctyun.cn/help2/10000101/10001740 網頁中下載

OOS PHP SDK開發者指南.pdf  感覺這是全網僅有的一份資料了,要認真看看,沒有說到的就得參考亞馬遜或者阿里的材料了

oos-php-sdk-6.2.0.zip  sdk包,基本功能其實都有,就是材料說明太專業了

三、Yii2 框架準備

https://www.yiichina.com/download頁面中選擇Yii2 的高級應用程序模板下載

 

開始

1、使用你習慣使用的IDE建立一個php項目;(PhpStorm、Zend Studio、VS Code都可以);

2、把Yii2解壓後的放到你的項目中

3、將oos-php-sdk-6.2.0.zip解壓後,放到vendor文件夾中

4、在根目錄common文件夾下面創建一個components文件夾,並創建一個TianYiYunOos.php文件

代碼如下:

<?php
/**
 * Version
 * ================================================
 * Project Name:WWFR_Yii
 * Project Version:1.0
 * Web: 
 * ================================================
 * Author: shuoguang chen
 * Date: 2020/3/28 0:09
 * ************************************************
 * Type:components
 * Name:插件
 * Info:用於天翼雲OOS實現相關功能
 * ************************************************
 */

namespace common\components;

use Yii;
use OOS\OosClient;
use yii\base\Component;

class TianYiYunOos extends Component
{
    public static $oss;

    public function __construct()
    {
        parent::__construct();
        $accessKeyId = Yii::$app->params['oss']['accessKeyId'];         //獲取天翼雲oos的accessKeyId
        $accessKeySecret = Yii::$app->params['oss']['accessKeySecret'];     //獲取天翼雲oos的accessKeySecret
        $endpoint = Yii::$app->params['oss']['endPoint'];            //獲取天翼雲oos的endPoint
        self::$oss = new OosClient($accessKeyId, $accessKeySecret, $endpoint); //實例化OosClient對象
    }

    /**
     * 使用天翼雲oos查看容器列表
     * @return String 列表信息
     */
    public function listBuckets(){
        $options = array();
         try {
             $bucketListInfo = self::$oss->listBuckets($options);
         } catch (OosException $e) {
             $e->printException(__FUNCTION__);
             return;
         }
         print(__FUNCTION__ . ": OK" . "\n");
         $_buckets = array();
         $bucketList = $bucketListInfo->getBucketList();
         $owner = $bucketListInfo->getOwner();
         foreach ($bucketList as $bucket) {
             $_buckets[] = $bucket->getName();
         }
         print_r($_buckets);
    }

    public function test(){
        echo 123;
        echo "success";
    }
}

5、修改根目錄common\config\mian.php文件,添加如下代碼:

<?php
return [
    'aliases' => [
        '@OOS' => '@vendor/tianyiyunoos/oos-php-sdk/src/OOS'
    ]
];

6、修改根目錄common\config\params.php文件,添加如下代碼:

'oss' =>[
        'accessKeyId'=>'你的accessKeyId',
        'accessKeySecret'=>'你的accessKeySecret',
        'bucket' => '你建的bucket',
        'endPoint' => 'oos-cn.ctyunapi.cn',
    ]

7、爲了測試引入的插件是否正確,可以選擇在frontend模塊中新建一個控制器,我這裏直接建了一個default的控制器,代碼如下:

class DefaultController extends Controller
{

    public function actionIndex()
    {
        return Yii::$app->TianYiYunOos->listBuckets();
    }
}

如果成功,會打印出如下內容:listBuckets: OK Array ( [0] => sysimg [1] => openimg )

到此,YII2調用天翼雲OOS 對象存儲服務就成功了,剩下的就是按SDK的例子在TianYiYunOos.php中加入對應功能就可以了,其他功能和安全問題未有考慮,如果今後開發成熟了,我會做一份插件放在github中方便下載和安裝。

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