zoukankan      html  css  js  c++  java
  • Thinkphp5 对接百度云对象存储 BOS (上传、删除)

    首先下载SDK包可以在 官网下载 ,或者在项目根目录使用composer 。

    composer require baidubce/bce-sdk-php

    压缩包里面有五个文件,实际运用到只有两个,然后放在extend文件目录下

     

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

    
    
    //如果是用composer 引入的直接use就可以了 :
    use BaiduBceServicesBosBosClient;
    //如果使用的压缩包:
    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 
  • 相关阅读:
    网络编程笔记--socket可读可写条件
    redis内核了解
    TIPI 阅读笔记 ----cgi 和 fastcgi
    csv 导 mysql
    Linux IO模式及 select、poll、epoll详解(转载)
    nginx 配置location php 不被解析解决办法
    汇编实验九
    汇编实验四
    实验三
    汇编 实验二
  • 原文地址:https://www.cnblogs.com/best-always/p/10273320.html
Copyright © 2011-2022 走看看