Thinkphp5 對接百度雲對象存儲 BOS (上傳、刪除)

首先下載SDK包能夠在 官網下載 ,或者在項目根目錄使用composer 。php

composer require baidubce/bce-sdk-php

壓縮包裏面有五個文件,實際運用到只有兩個,而後放在extend文件目錄下html

 

在須要使用的控制器進行引入json

 
 
//若是是用composer 引入的直接use就能夠了 :
use BaiduBce\Services\Bos\BosClient;
//若是使用的壓縮包:
include_once './extend/BaiduBce.phar';//下面是文件結構
require './extend/SampleConf.php';// 配置信息

BaiduBce.phar ├──src │ └── BaiduBce //composer直接下載的就是這個文件 │ ├── Auth //BCE簽名相關
│       ├── Exception           //BCE客戶端的異常
│       ├── Http                //BCE的Http通訊相關
│       ├── Log                 //BCE日誌
│ ├── Services │ │ └── Bos //BOS主目錄,此目錄必須保留
│       │       ├── BosClient.php     //BOS操做類,全部操做能夠經過BosClient類能夠完成
│       │       ├── BosOptions.php    //BOS自定義配置
│       │       └── CannedAcl.php     //CannedAcl模塊
│       └── Util                //BCE公用工具
└──vendor                       //第三方庫

 上傳方法:數組

    public function test_upload()
    {
        error_reporting(-1);
        $file = request()->file('file');
        if ($file) {
            $info = $file->move(ROOT_PATH . 'uploads');
            if ($info) {
                $BOS_TEST_CONFIG =
                    array(
                        'credentials' => array(
                            'accessKeyId' => 'your accessKeyId',
                            'secretAccessKey' => 'your aecretAccessKey',
                        ),
                        'endpoint' => 'bucket域名',
                    );
                $client = new BosClient($BOS_TEST_CONFIG);//若是是有配置文件直接在配置文件裏面配置信息就能夠了不須要寫上面的數組。 $bucketName = 'rests';//bucket名字,至關於你在bucket建立好的那個文件夾,若是沒有會自動建立。 $client->putObjectFromFile($bucketName, $info->getSaveName(), 'uploads' . DS . $info->getSaveName());
          //第一個參數:bucket名字、第二個參數:文件名字、第三個參數:文件路徑。
// 成功上傳後 獲取上傳信息 $data['code'] = 0; $data['msg'] = ''; $data['list'] = [ 'src' => 'cartoon/' . $info->getSaveName(), 'name' => $info->getFilename(), 'preview' => 'uploads' . DS . $info->getSaveName(), ];
          //上面的返回數據是看我的項目須要的數據
$url = ROOT_PATH . 'uploads' . DS . $info->getSaveName(); unset($info);//若是不釋放這個變量下面的unlink()函數會報錯。 if (file_exists($url)) { unlink($url);//刪除本地文件 } echo json_encode($data); } else { // 上傳失敗獲取錯誤信息 echo $file->getError(); } } }

 刪除方法:composer

    /**
     * 刪除百度雲存儲文件
     * @access public
     * @param  string $object 文件名字
     * @param  string $bucket BucketName
     * @return false|File
     */
    public function file_del($object, $bucket = 'test')
    {
        $BOS_TEST_CONFIG =
            array(
                'credentials' => array(
                    'accessKeyId' => 'your accessKeyId',
                    'secretAccessKey' => 'your secretAccessKey',
                ),
                'endpoint' => 'bucket域名',
            );
        $client = new BosClient($BOS_TEST_CONFIG);
        $client->deleteObject($bucket, $object);
    } 

Author:XueDing_
Email:361169632@qq.com
註明出處:http://www.javashuo.com/article/p-bcnfzlrn-d.html 
相關文章
相關標籤/搜索