前言
本文僅適用於新接觸對象存儲服務開發的新人,對於非常熟悉對象開發的人來說會發現其實都一樣,網上有很多阿里雲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中方便下載和安裝。