首页 > 开发 > PHP > 正文

yii2.0整合阿里云oss的示例代码

2024-05-04 22:45:29
字体:
来源:转载
供稿:网友

主要思路,首先用composer下载阿里云oss的php sdk,然后自定义一个组件,就能够在全局调用阿里云oss了。

具体步骤如下:

1 到阿里云官网找到php sdk,网址为https://help.aliyun.com/document_detail/32099.html?spm=5176.87240.400427.40.s8EbEH

2 使用composer安装,在项目目录下(basic/)输入:

composer require aliyuncs/oss-sdk-php

安装完成以后,如下图

3 自定义组件:

3.1 在basic目录下,创建components文件夹,

3.2 在components目录下创建Aliyunoss.php

代码参考如下:

<?phpnamespace app/components;use Yii;use yii/base/Component;use OSS/OssClient;class Aliyunoss extends Component{  public static $oss;  public function __construct()  {    parent::__construct();    $accessKeyId = Yii::$app->params['oss']['accessKeyId'];         //获取阿里云oss的accessKeyId    $accessKeySecret = Yii::$app->params['oss']['accessKeySecret'];     //获取阿里云oss的accessKeySecret    $endpoint = Yii::$app->params['oss']['endPoint'];            //获取阿里云oss的endPoint    self::$oss = new OssClient($accessKeyId, $accessKeySecret, $endpoint); //实例化OssClient对象  }  /**   * 使用阿里云oss上传文件   * @param $object  保存到阿里云oss的文件名   * @param $filepath 文件在本地的绝对路径   * @return bool   上传是否成功   */  public function upload($object, $filepath)  {    $res = false;    $bucket = Yii::$app->params['oss']['bucket'];        //获取阿里云oss的bucket    if (self::$oss->uploadFile($bucket, $object, $filepath)) { //调用uploadFile方法把服务器文件上传到阿里云oss      $res = true;    }    return $res;  }  /**   * 删除指定文件   * @param $object 被删除的文件名   * @return bool  删除是否成功   */  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;  }  public function test(){    echo 123;    echo "success";  }}?>

3.3 在basic/config/params.php里边添加一个数组,用来放置阿里云oss的配置信息

代码参考如下:

'oss' =>[    'accessKeyId'=>'您的accessKeyId',    'accessKeySecret'=>'您的accessKeySecret',    'bucket' => '您的bucket',    'endPoint' => '您的endPoint',  ]

3.4 在basic/config/main.php里边添加一个组件配置

'Aliyunoss' => [  'class' => 'app/components/Aliyunoss',],            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表