Heim  >  Artikel  >  Backend-Entwicklung  >  Beispielcode von yii2.0 oss

Beispielcode von yii2.0 oss

巴扎黑
巴扎黑Original
2017-09-21 10:11:211522Durchsuche

In diesem Artikel wird hauptsächlich der Beispielcode von Yii2.0 zur Integration von Alibaba Cloud oss ​​vorgestellt. Der Herausgeber findet ihn recht gut, daher werde ich ihn jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Editor und werfen wir einen Blick darauf.

Die Hauptidee besteht darin, zuerst Composer zu verwenden, um das PHP SDK von Alibaba Cloud OSS herunterzuladen, und dann eine Komponente anzupassen, um Alibaba Cloud OSS global aufzurufen.

Die spezifischen Schritte sind wie folgt:

1 Gehen Sie zur offiziellen Website von Alibaba Cloud, um das PHP-SDK unter https://help.aliyun.com/document_detail/32099 zu finden. html?spm=5176.87240. 400427.40.s8EbEH

2 Verwenden Sie Composer zum Installieren und geben Sie im Projektverzeichnis (basic/) Folgendes ein:


composer require aliyuncs/oss-sdk-php

Nachher Die Installation ist abgeschlossen, wie unten gezeigt

3 Benutzerdefinierte Komponenten:

3.1 Erstellen Sie den Komponentenordner im Basisverzeichnis

3.2 Erstellen Sie es im Komponentenverzeichnis Aliyunoss.php

Die Codereferenz lautet wie folgt:


<?php
namespace 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[&#39;oss&#39;][&#39;accessKeyId&#39;];         //获取阿里云oss的accessKeyId
    $accessKeySecret = Yii::$app->params[&#39;oss&#39;][&#39;accessKeySecret&#39;];     //获取阿里云oss的accessKeySecret
    $endpoint = Yii::$app->params[&#39;oss&#39;][&#39;endPoint&#39;];            //获取阿里云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[&#39;oss&#39;][&#39;bucket&#39;];        //获取阿里云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[&#39;oss&#39;][&#39;bucket&#39;];  //获取阿里云oss的bucket
    if (self::$oss->deleteObject($bucket, $object)){ //调用deleteObject方法把服务器文件上传到阿里云oss
      $res = true;
    }

    return $res;
  }

  public function test(){
    echo 123;
    echo "success";
  }
}
?>

3.3 Fügen Sie ein Array hinzu in basic/config/params.php zum Platzieren der Konfigurationsinformationen von Alibaba Cloud OSS

Die Codereferenz lautet wie folgt:


&#39;oss&#39; =>[
    &#39;accessKeyId&#39;=>&#39;您的accessKeyId&#39;,
    &#39;accessKeySecret&#39;=>&#39;您的accessKeySecret&#39;,
    &#39;bucket&#39; => &#39;您的bucket&#39;,
    &#39;endPoint&#39; => &#39;您的endPoint&#39;,
  ]

3.4 Fügen Sie in basic/config/main.php eine Komponentenkonfiguration hinzu


&#39;Aliyunoss&#39; => [
  &#39;class&#39; => &#39;app\components\Aliyunoss&#39;,
],

3.5 Versuchen Sie,


Yii::$app->Aliyunoss->test();
3.6 Screenshot eines erfolgreichen Anrufs:


Zu diesem Zeitpunkt wurde Alibaba Cloud oss ​​​​erfolgreich in das yii2-Framework eingeführt. Der Aufruf der Upload-Methode und der Löschmethode sind die gleichen wie im Beispiel. Sie können der Aliyunoss-Komponente auch neue Funktionen hinzufügen, die auf den Methoden in OssClient basieren. Im Allgemeinen kann die Verwendung der Upload- und Löschfunktionen die meisten Anforderungen erfüllen.

Das obige ist der detaillierte Inhalt vonBeispielcode von yii2.0 oss. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn