thinkphp5 阿里云、騰訊云對象存儲

think-oss

thinkphp (>5.0) aliyun-oss 阿里云對象存儲 騰訊云對象存儲

安裝

composer require chichoyi/think-oss

配置

配置方式一:手動復制 vendor/chichoyi/think-oss/src/oss.php 到 application/extra/

配置方式二: 在 application/extra/ 目錄下創(chuàng)建文件 oss.php , 然后復制下一步的配置參數(shù)到該文件

配置參數(shù)

return [

    //支持驅(qū)動:阿里云(oss), 騰訊云(cos)
    'driver' => 'oss',

    //驅(qū)動連接參數(shù)
    'connection' => [

        //阿里云-oss
        'oss' => [
            'access_id' => '',
            'access_secret' => '',
            'endpoint' => '',
        ],

        //騰訊云-cos
        'cos' => [
            'access_id' => '',
            'access_secret' => '',
            'region' => '',
        ],

    ],

    //文件目錄
    'directory' => [
        'DEFAULT' => [ 'dir' => 'default/', 'type' => 'default'],
        'PRIVATE' => [ 'dir' => 'private/default/', 'type' => 'private_default'],
        //...
    ],

    //生產(chǎn)桶
    'buckets' => [
        'default' => 'your bucket',
        'private_bucket' => 'your private bucket',
        //...
    ],

    //自動切換測試桶的標志, 0 生產(chǎn)環(huán)境  1 測試環(huán)境
    'test_sign' => 0,

    //測試桶
    'buckets_for_test' => [
        'default' => 'your bucket',
        'private_bucket' => 'your private bucket',
        //...
    ],
    
    //默認false摆昧;若為true撩满,使用upload方法,將保存一份到oss绅你,同時保存到本地
    'is_save_to_local' => 'false',
];

配置說明

文件目錄配置和生產(chǎn)桶或測試桶的關系是:文件目錄子項的type參數(shù)就是生產(chǎn)桶或測試桶的索引(對應關系),
使用者可以根據(jù)規(guī)則靈活配置伺帘,文件目錄的type 默認是default類型,如果有(private_)前綴的話將會自動識
別該桶是私有桶(屬性為私有)忌锯,即訪問該圖片需要授權簽名曼追,上傳圖片將會自動返回可訪問的路徑;
公共桶(屬性為公共讀)不需添加此前綴

使用

namespace app\index\controller;

use Chichoyi\ThinkOss\Facade\Oss;
use \think\Controller;

class Index extend Controller
{
    //上傳圖片
    $oss = Oss::upload('img'); 
    //第二個參數(shù)不傳將自動使用default/文件夾
    
    //單圖片上傳返回格式如下
    //['path' => '', 'visit_path' => '']
    
    //多圖片上傳返回格式如下
    //[
    //  ['path' => '', 'visit_path' => '', 'faild_reason' => '', 'type' => 'success'],
    //  ['path' => '', 'visit_path' => '', 'faild_reason' => '', 'type' => 'error'],
    //]
}

文檔

1. 上傳圖片

  upload($input_name, $dir = 'DEFAULT', $rule = ['ext' => ['gif', 'jpg', 'jpeg', 'bmp', 'png', 'swf']])      //$input_name 表單的name,比如前端上傳圖片是 <input type='file' name='img'> 那么填的就是img了
  
  $dir 目錄名稱 對應的是application/extra/oss.php的directory的選項, 默認是DEFAUL
  
  $rule 驗證規(guī)則 默認驗證后綴'gif', 'jpg', 'jpeg', 'bmp', 'png', 'swf'
  [
      'ext' => [],  //檢查文件后綴 
      'size' => '',  //檢查文件大小
      'type' => ''//檢查文件 Mime 類型
  ]
  
  單圖片上傳返回格式如下
  ['path' => '', 'visit_path' => '']
          
  多圖片上傳返回格式如下
  [
    ['path' => '', 'visit_path' => '', 'faild_reason' => '', 'type' => 'success'],
    ['path' => '', 'visit_path' => '', 'faild_reason' => '', 'type' => 'error'],
  ]

2. 刪除圖片

  delete($path) 
  
  $path 圖片路徑(相對路徑或全路徑汉规,注:相對路徑字符串第一個字符不能加斜桿/)
  
  返回格式如下
  ['code' => 20000, 'msg' => '操作成功', 'data' => '']

3. 獲取圖片訪問路徑

  getImgPath($path, $timeout = 3600)
  
  $path 圖片相對路徑
  
  $timeout 圖片訪問過期時間礼殊,默認3600s
  
  返回格式如下
  傳空path將返回:‘圖片路徑不能為空’
  正常返回是:'https://'開頭的全路徑
  
  注意:不支持自定義域名的路徑驹吮,需要cdn加速的自己重新獲取圖片訪問路徑方法

4. 將絕對路徑轉成相對路徑

  handleUrl($url)
  
  $url 圖片絕對路徑
  
  返回格式如下
  相對路徑

5. 底層調(diào)用

  baseCall($method, $arguments, $is_ret_original = false)
  
  $method 方法名 支持aliyun-oss-sdk包OssClient類的所有方法調(diào)用,使用者可根據(jù)需求自行調(diào)用sdk包的其他方法
  
  $arguments 參數(shù)晶伦,需要傳數(shù)組格式
  
  $is_ret_original 是否返回源響應碟狞,調(diào)用成功默認返回true

作者言

由于thinkphp官方不支持第三方對象存儲,所以才有了這個拓展包出現(xiàn)婚陪。

此版支持阿里云的對象存儲和騰訊云對象存儲族沃,未來可能會支持七牛云,看反應吧泌参。

桶需要全部在同一個地區(qū)脆淹,不支持多個地區(qū)。

若發(fā)現(xiàn)bug沽一,還請多多指正盖溺,可以將Bug反饋到作者郵箱(chichoyi@163.com)。
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末铣缠,一起剝皮案震驚了整個濱河市烘嘱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蝗蛙,老刑警劉巖蝇庭,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異捡硅,居然都是意外死亡哮内,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門壮韭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來牍蜂,“玉大人,你說我怎么就攤上這事泰涂■昃海” “怎么了?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵逼蒙,是天一觀的道長从绘。 經(jīng)常有香客問我,道長是牢,這世上最難降的妖魔是什么僵井? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮驳棱,結果婚禮上批什,老公的妹妹穿的比我還像新娘。我一直安慰自己社搅,他們只是感情好驻债,可當我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布乳规。 她就那樣靜靜地躺著,像睡著了一般合呐。 火紅的嫁衣襯著肌膚如雪暮的。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天淌实,我揣著相機與錄音冻辩,去河邊找鬼。 笑死拆祈,一個胖子當著我的面吹牛恨闪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播放坏,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼咙咽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了轻姿?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤逻炊,失蹤者是張志新(化名)和其女友劉穎互亮,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體余素,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡豹休,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了桨吊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片威根。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖视乐,靈堂內(nèi)的尸體忽然破棺而出洛搀,到底是詐尸還是另有隱情,我是刑警寧澤佑淀,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站伸刃,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏捧颅。R本人自食惡果不足惜景图,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一碉哑、第九天 我趴在偏房一處隱蔽的房頂上張望亮蒋。 院中可真熱鬧,春花似錦忘晤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽闰蛔。三九已至痕钢,卻和暖如春序六,著一層夾襖步出監(jiān)牢的瞬間任连,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工例诀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留随抠,地道東北人。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓繁涂,卻偏偏與公主長得像拱她,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子扔罪,可洞房花燭夜當晚...
    茶點故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內(nèi)容