经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » PHP » 查看文章
Thinkphp5 对接百度云对象存储 BOS (上传、删除)
来源:cnblogs  作者:XueDing  时间:2019/1/16 9:23:45  对本文有异议
  1. 原文地址:https://www.cnblogs.com/best-always/p/10273320.html

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

composer require baidubce/bce-sdk-php

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

 

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

  1.  
  1. //如果是用composer 引入的直接use就可以了 :
    use BaiduBce\Services\Bos\BosClient;
  1. //如果使用的压缩包:
    include_once './extend/BaiduBce.phar';//下面是文件结构
    require './extend/SampleConf.php';// 配置信息
  1. BaiduBce.phar
  2. ├──src
  3. └── BaiduBce //composer直接下载的就是这个文件
  4. ├── Auth //BCE签名相关
  5. ├── Exception //BCE客户端的异常
  6. ├── Http //BCE的Http通信相关
  7. ├── Log //BCE日志
  8. ├── Services
  9. └── Bos //BOS主目录,此目录必须保留
  10. ├── BosClient.php //BOS操作类,所有操作可以通过BosClient类可以完成
  11. ├── BosOptions.php //BOS自定义配置
  12. └── CannedAcl.php //CannedAcl模块
  13. └── Util //BCE公用工具
  14. └──vendor //第三方库

 上传方法:

  1. public function test_upload()
  2. {
  3. error_reporting(-1);
  4. $file = request()->file('file');
  5. if ($file) {
  6. $info = $file->move(ROOT_PATH . 'uploads');
  7. if ($info) {
  8. $BOS_TEST_CONFIG =
  9. array(
  10. 'credentials' => array(
  11. 'accessKeyId' => 'your accessKeyId',
  12. 'secretAccessKey' => 'your aecretAccessKey',
  13. ),
  14. 'endpoint' => 'bucket域名',
  15. );
  16. $client = new BosClient($BOS_TEST_CONFIG);//如果是有配置文件直接在配置文件里面配置信息就可以了不需要写上面的数组。
  17. $bucketName = 'rests';//bucket名字,相当于你在bucket创建好的那个文件夹,如果没有会自动创建。
  18. $client->putObjectFromFile($bucketName, $info->getSaveName(), 'uploads' . DS . $info->getSaveName());
              //第一个参数:bucket名字、第二个参数:文件名字、第三个参数:文件路径。
  19. // 成功上传后 获取上传信息
  20. $data['code'] = 0;
  21. $data['msg'] = '';
  22. $data['list'] = [
  23. 'src' => 'cartoon/' . $info->getSaveName(),
  24. 'name' => $info->getFilename(),
  25. 'preview' => 'uploads' . DS . $info->getSaveName(),
  26. ];
              //上面的返回数据是看个人项目需要的数据
  27. $url = ROOT_PATH . 'uploads' . DS . $info->getSaveName();
  28. unset($info);//如果不释放这个变量下面的unlink()函数会报错。
  29. if (file_exists($url)) {
  30. unlink($url);//删除本地文件
  31. }
  32. echo json_encode($data);
  33. } else {
  34. // 上传失败获取错误信息
  35. echo $file->getError();
  36. }
  37. }
  38. }

 删除方法:

  1. /**
  2. * 删除百度云存储文件
  3. * @access public
  4. * @param string $object 文件名字
  5. * @param string $bucket BucketName
  6. * @return false|File
  7. */
  8. public function file_del($object, $bucket = 'test')
  9. {
  10. $BOS_TEST_CONFIG =
  11. array(
  12. 'credentials' => array(
  13. 'accessKeyId' => 'your accessKeyId',
  14. 'secretAccessKey' => 'your secretAccessKey',
  15. ),
  16. 'endpoint' => 'bucket域名',
  17. );
  18. $client = new BosClient($BOS_TEST_CONFIG);
  19. $client->deleteObject($bucket, $object);
  20. } 

  1. 本文版权归作者和博客园共有,支持原创,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号