Thinkphp5 对接百度云对象存储 BOS (上传、删除…
2019-01-16 05:50:30来源:博客园 阅读 ()
首先下载SDK包可以在 官网下载 ,或者在项目根目录使用composer 。
压缩包里面有五个文件,实际运用到只有两个,然后放在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
原文链接:https://www.cnblogs.com/best-always/p/10273320.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- thinkPHP5项目中实现QQ第三方登录功能 2020-02-19
- thinkPHP5分页功能实现方法分析 2020-02-08
- thinkPHP5实现数据库添加内容的方法 2019-12-19
- php对接网易云信视频直播 2019-04-20
- thinkphp5路由心得 2019-04-18
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash