对象存储oos在yii2框架下使用

一、安装
1.首先检测自己的php环境
OSS PHP SDK只能在PHP 5.3以上版本中使用。
2.sdk的安装
可以通过git下载文件包,进行文件引入使用。也可以通过composer进行安装(推荐使用composer安装)。

在项目的根目录运行composer require aliyuncs/oss-sdk-php

3.项目配置
以下演示以yii2框架为主

  1. 首先进行相应的配置
    oos配置
    2.应用实例化

需要传入的参数说明
$object 文件名
$filepath 文件物理路径
实例化文件上传

 public function upload($object, $filepath)
    {
        $accessKeyId = Yii::$app->params['oss']['accessKeyId'];                 //获取阿里云oss的accessKeyId
        $accessKeySecret = Yii::$app->params['oss']['accessKeySecret'];         //获取阿里云oss的accessKeySecret
        $endpoint = Yii::$app->params['oss']['endPoint'];                       //获取阿里云oss的endPoint
        $bucket = Yii::$app->params['oss']['bucket'];
        $oss = new OssClient($accessKeyId, $accessKeySecret, $endpoint);  //实例化OssClient对象
        $res = $oss->uploadFile($bucket,$object,$filepath);
        $url = $res['info']['url'];
        return $url;
    }

实例化文件删除

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;
    }

实例化防盗链的url地址

//获取防盗链的url地址
    public function geturl($object){
        $accessKeyId = Yii::$app->params['oss']['accessKeyId'];                 //获取阿里云oss的accessKeyId
        $accessKeySecret = Yii::$app->params['oss']['accessKeySecret'];         //获取阿里云oss的accessKeySecret
        $endpoint = Yii::$app->params['oss']['endPoint'];                       //获取阿里云oss的endPoint
        $bucket = Yii::$app->params['oss']['bucket'];
        $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
        $timeout = 3600;
        //$options = array(OssClient::OSS_PROCESS => "image/resize,m_lfit,h_100,w_100" );
        $signedUrl = $ossClient->signUrl($bucket, $object, $timeout, "GET");
        return $signedUrl;
    }

实例化防盗链的缩略图

 public function getminurl($object){
        $accessKeyId = Yii::$app->params['oss']['accessKeyId'];                 //获取阿里云oss的accessKeyId
        $accessKeySecret = Yii::$app->params['oss']['accessKeySecret'];         //获取阿里云oss的accessKeySecret
        $endpoint = Yii::$app->params['oss']['endPoint'];                       //获取阿里云oss的endPoint
        $bucket = Yii::$app->params['oss']['bucket'];
        $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
        $timeout = 3600;
        $options = array(OssClient::OSS_PROCESS => "image/resize,m_lfit,h_100,w_100" );
        $signedUrl = $ossClient->signUrl($bucket, $object, $timeout, "GET",$options);
        return $signedUrl;
    }

3.项目中使用
在用到的地方引入该文件,然后进行方法的调用即可。

  public function upload()
    {
        if ($this->validate()) {
            $request = new Request();
            $post = $request->bodyParams;
            $urls = [];
            foreach ($this->imageFiles as $k=> $file) {
                $filename = time().$k;
                $file->saveAs('D:\phpstudy_pro\WWW\ubossAPIs\web'.$k . $filename . '.' . $file->extension);
                $filepath = "D:\phpstudy_pro\WWW\ubossAPIs\web" .$k. $filename. '.' . $file->extension;
                $list[] = $filepath;
            }
            foreach ($list as $k =>$v){
                $filepath = $v;
                $OOS = new Aliyunoss;
                $object =time().$k;
                $res =  $OOS->upload($object,$filepath);
                if($res){
                    unlink($v);
                }
                $urls[] = $res;
            }
            $data = implode(',',$urls);
            return $data;
        } else {
            return false;
        }
    }
发布了41 篇原创文章 · 获赞 32 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_33482132/article/details/103525948