首页 > 后端开发 > php教程 > Thinkphp5对接百度云对象存储 BOS(代码示例)

Thinkphp5对接百度云对象存储 BOS(代码示例)

不言
发布: 2023-04-04 19:40:02
转载
4485 人浏览过

本篇文章给大家带来的内容是关于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);
    }
登录后复制

以上是Thinkphp5对接百度云对象存储 BOS(代码示例)的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:cnblogs.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板