Laravel(5.7) 運用 OSS

要求

     ` PHP >= 7.0`

安裝

           ` composer require "johnlui/aliyun-oss `

配置

    `組件下載完成之后,需要在 app/config/oss.php 中寫入六項配置(個人推薦)`
image

可在.env文件中添加適量配置(根據(jù)實際數(shù)據(jù)填寫)

image

寫入配置后注意使用 php artisan config:clear 清除配置緩存


構(gòu)建 Services 文件

后臺需要一個 Service 文件, 在 app/Service 下新建一個 OSS.php 文件

image

附上代碼:

<?php

namespace App\Services;

/**

* @Author: zhanhaisheng

* @String: OSS文件存儲

*/

use JohnLui\AliyunOSS;

use Exception;

use DateTime;

class OSS {

  /* 城市名稱:

  * 

  *  經(jīng)典網(wǎng)絡(luò)下可選:杭州区宇、上海、青島易茬、北京、張家口戴甩、深圳尊沸、香港、硅谷帽衙、弗吉尼亞、新加坡贞绵、悉尼厉萝、日本、法蘭克福榨崩、迪拜

  *  VPC 網(wǎng)絡(luò)下可選:杭州谴垫、上海、青島蜡饵、北京弹渔、張家口、深圳溯祸、硅谷肢专、弗吉尼亞舞肆、新加坡、悉尼博杖、日本椿胯、法蘭克福、迪拜

  */   

  private $ossClient;

  /**

  * 私有初始化 API剃根,非 API哩盲,不用關(guān)注

  * @param boolean 是否使用內(nèi)網(wǎng)

  */

  public function __construct($isInternal = false)

  {

    if (config('app.NetworkType') == 'VPC' && !$isInternal) {

      throw new Exception("VPC 網(wǎng)絡(luò)下不提供外網(wǎng)上傳、下載等功能");

    }

    $this->ossClient = AliyunOSS::boot(

      config('app.City'),

      config('app.NetworkType'),

      $isInternal,

      config('app.AccessKeyId'),

      config('app.AccessKeySecret')

    );

  }

  /**

  * 使用外網(wǎng)上傳文件

  * @param  string 上傳之后的 OSS object 名稱

  * @param  string 上傳文件路徑

  * @return boolean 上傳是否成功

  */

  public static function upload($ossKey, $filePath, $options = [])

  {

    $oss = new OSS(config('app.IsInternal'));

    $oss->ossClient->setBucket(config('app.BucketName'));

    return $oss->ossClient->uploadFile($ossKey, $filePath, $options);

  }

  /**

  * 使用外網(wǎng)直接上傳變量內(nèi)容

  * @param  string bucket名稱

  * @param  string 上傳之后的 OSS object 名稱

  * @param  string 上傳的變量

  * @return boolean 上傳是否成功

  */

  public static function uploadContent($ossKey, $content, $options = [])

  {

    $oss = new OSS(config('app.IsInternal'));

    $oss->ossClient->setBucket(config('app.BucketName'));

    return $oss->ossClient->uploadContent($ossKey, $content, $options);

  }

  /**

  * 使用外網(wǎng)刪除文件

  * @param  string bucket名稱

  * @param  string 目標(biāo) OSS object 名稱

  * @return boolean 刪除是否成功

  */

  public static function deleteObject($ossKey)

  {

    $oss = new OSS(config('app.IsInternal'));

    $oss->ossClient->setBucket(config('app.BucketName'));

    return $oss->ossClient->deleteObject(config('app.BucketName'), $ossKey);

  }

    /**

    * 復(fù)制存儲在阿里云OSS中的Object

    *

    * @param string $sourceBuckt 復(fù)制的源Bucket

    * @param string $sourceKey - 復(fù)制的的源Object的Key

    * @param string $destBucket - 復(fù)制的目的Bucket

    * @param string $destKey - 復(fù)制的目的Object的Key

    * @return Models\CopyObjectResult

    */

    public function copyObject($sourceBuckt, $sourceKey, $destBucket, $destKey)

    {

        $oss = new OSS(config('app.IsInternal')); // 上傳文件使用內(nèi)網(wǎng)狈醉,免流量費

        return $oss->ossClient->copyObject($sourceBuckt, $sourceKey, $destBucket, $destKey);

    }

    /**

    * 移動存儲在阿里云OSS中的Object

    *

    * @param string $sourceBuckt 復(fù)制的源Bucket

    * @param string $sourceKey - 復(fù)制的的源Object的Key

    * @param string $destBucket - 復(fù)制的目的Bucket

    * @param string $destKey - 復(fù)制的目的Object的Key

    * @return Models\CopyObjectResult

    */

    public function moveObject($sourceBuckt, $sourceKey, $destBucket, $destKey)

    {

        $oss = new OSS(config('app.IsInternal')); // 上傳文件使用內(nèi)網(wǎng)廉油,免流量費

        return $oss->ossClient->moveObject($sourceBuckt, $sourceKey, $destBucket, $destKey);

    }

    public static function getUrl($ossKey)

    {

        $oss = new OSS();

        $oss->ossClient->setBucket(config('app.BucketName'));

        return $oss->ossClient->getUrl($ossKey, new \DateTime("+1 day"));

    }

    public static function createBucket($bucketName)

    {

        $oss = new OSS();

        return $oss->ossClient->createBucket($bucketName);

    }

    public static function getAllObjectKey($bucketName)

    {

        $oss = new OSS();

        return $oss->ossClient->getAllObjectKey($bucketName);

    }

    /**

    * 獲取指定Object的元信息

    *

    * @param  string $bucketName 源Bucket名稱

    * @param  string $key 存儲的key(文件路徑和文件名)

    * @return object 元信息

    */

    public static function getObjectMeta($bucketName, $osskey)

    {

        $oss = new OSS();

        return $oss->ossClient->getObjectMeta($bucketName, $osskey);

    }

}

?>


以上操作完畢就可以完美使用Aliyun OSS文件系統(tǒng)了

注意:先引入后使用,咳咳

原作者=====地址奉上johnlui AliyunOSS

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苗傅,一起剝皮案震驚了整個濱河市抒线,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌渣慕,老刑警劉巖嘶炭,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異逊桦,居然都是意外死亡眨猎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門强经,熙熙樓的掌柜王于貴愁眉苦臉地迎上來睡陪,“玉大人,你說我怎么就攤上這事匿情”λ耄” “怎么了?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵码秉,是天一觀的道長。 經(jīng)常有香客問我鸡号,道長转砖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任鲸伴,我火速辦了婚禮府蔗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘汞窗。我一直安慰自己姓赤,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布仲吏。 她就那樣靜靜地躺著不铆,像睡著了一般蝌焚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上誓斥,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天只洒,我揣著相機(jī)與錄音,去河邊找鬼劳坑。 笑死毕谴,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的距芬。 我是一名探鬼主播涝开,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼框仔!你這毒婦竟也來了舀武?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤存和,失蹤者是張志新(化名)和其女友劉穎奕剃,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捐腿,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡纵朋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了茄袖。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片操软。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖宪祥,靈堂內(nèi)的尸體忽然破棺而出聂薪,到底是詐尸還是另有隱情,我是刑警寧澤蝗羊,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布藏澳,位于F島的核電站,受9級特大地震影響耀找,放射性物質(zhì)發(fā)生泄漏翔悠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一野芒、第九天 我趴在偏房一處隱蔽的房頂上張望蓄愁。 院中可真熱鬧,春花似錦狞悲、人聲如沸撮抓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽丹拯。三九已至站超,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間咽笼,已是汗流浹背顷编。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留剑刑,地道東北人媳纬。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像施掏,于是被迫代替她去往敵國和親钮惠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,629評論 2 354