前言
本文仅适用于新接触对象存储服务开发的新人,对于非常熟悉对象开发的人来说会发现其实都一样,网上有很多阿里云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中方便下载和安装。