>백엔드 개발 >PHP 튜토리얼 >Thinkphp5는 Baidu Cloud Object Storage BOS에 연결됩니다(코드 예)

Thinkphp5는 Baidu Cloud Object Storage BOS에 연결됩니다(코드 예)

不言
不言앞으로
2019-01-19 09:30:474476검색

이 글의 내용은 Baidu Cloud Object Storage BOS(코드 예제)와의 Thinkphp5 도킹에 대한 내용입니다. 필요한 친구가 참고할 수 있기를 바랍니다.

먼저 SDK 패키지를 다운로드하세요. 공식 웹사이트에서 다운로드하거나 프로젝트 루트 디렉터리에 있는 작곡가를 사용할 수 있습니다.

composer require baidubce/bce-sdk-php

압축된 패키지에는 5개의 파일이 있지만 실제로는 2개만 사용되며 확장 파일 디렉터리에 배치됩니다

컨트롤러에 소개합니다. 사용해야 합니다

//如果是用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는 Baidu Cloud Object Storage BOS에 연결됩니다(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제

관련 기사

더보기