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中方便下载和安装。

发布了3 篇原创文章 · 获赞 3 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/windcsg/article/details/105165588