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


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

composer require baidubce/bce-sdk-php

壓縮包里面有五個文件,實際運用到只有兩個,然后放在extend文件目錄下

 

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

 
         
//如果是用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(); } } }

 刪除方法:

    /**
     * 刪除百度雲存儲文件
     * @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
注明出處:https://www.cnblogs.com/best-always/p/10273320.html 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM