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);
- }
Author:XueDing_
Email:361169632@qq.com
注明出处:https://www.cnblogs.com/best-always/p/10273320.html
Thinkphp5 对接百度云对象存储 BOS (上传、删除)的更多相关文章
- 阿里云对象存储oss上传文件夹
最近公司做工程项目,实现文件夹云存储上传. 网上找了一天,发现网上很多代码都存在相似问题,最后终于找到了一个满足我需求的项目. 工程如下: 这里对项目的大文件传输功能做出分析,怎么实现文件夹上传的,如 ...
- 阿里云OSS对象存储 简单上传文件
不得不说阿里云的命名比较让人摸不着头脑,开始以为是文件存储NAS,弄了半天什么文件系统,挂载点的搞不明白.后来才搞清楚原来 对象存储OSS才是我需要的. 其中EndPoint就是画红框的部分,但是要加 ...
- 阿里云对象存储OSS及CDN加速配置
目录 十大云存储服务商 1. 登陆阿里云官网,开通对象存储服务 OSS 2. 创建存储空间 3. 绑定自定义域名 4. 配置阿里云CDN加速 5. 购买阿里云免费SSL证书 6. 阿里云CDN配置HT ...
- TiKV 在京东云对象存储元数据管理的实践
京东云对象存储是在 2016 年作为公有云对外公开的,主要特点是可靠.安全.海量.低成本,应用于包括一些常用的业务场景,比如京东内部的京东商城视频/图片云存储,面向京东云公有云外部的开发者的服务,和面 ...
- 微信小程序基于腾讯云对象存储的图片上传
在使用腾讯云对象存储之前,公司一直使用的是传统的FTP的上传模式,而随着用户量的不断增加,FTP所暴露出来的问题也越来越多,1.传输效率低,上传速度慢.2.时常有上传其他文件来攻击服务器,安全上得不到 ...
- php 腾讯云 对象存储V5版本 获取返回的上传文件的链接方法
腾讯云 对象存储V5版本 文档地址:https://github.com/tencentyun/cos-php-sdk-v5 调用简单文件上传方法: 返回数据如下 Array ( [data:prot ...
- Delphi阿里云对象存储OSS【支持上传文件、下载文件、删除文件、创建目录、删除目录、Bucket操作等】
作者QQ:(648437169) 点击下载➨Delphi阿里云对象存储OSS 阿里云api文档 [Delphi阿里云对象存储OSS]支持 获取Bucket列表.设置Bucket ...
- Docsify+腾讯云对象存储 COS,一键搭建云上静态博客
最近一直在想如何利用 COS 简化静态博客的搭建过程.搜了很多的静态博客搭建过程,发现大部分的静态博客都要通过编译才能生成静态页面.功夫不负有心人,终于让我找到了一个超简洁博客的搭建方法. 效果预览 ...
- java开发之阿里云对象存储OSS和云数据库Memcache的使用
web开发中标配:aliyun ECS(阿里云服务器),aliyun RDS(阿里云数据库),aliyun OSS(阿里云对象存储),aliyun Memcache(阿里云缓存数据库). 今天就介绍下 ...
随机推荐
- 面向对象之property
property功能 以调用数据属性的方式(不用加括号)调用方法 方法定义成数据属性(方法本应该是动词) # 定义property之前 class People: def __init__(self, ...
- sql优化1
1.mysql里面的索引 对于 like关键字匹配查询,适用于like name%,但是不适用于%name%;添加索引时候注意这点 2.mysql的limit分页 ,limit 2,5;表示每页显示5 ...
- jar 解压war包到指定目录
用 jar -xvf .jar 命令默认解压到当前目录,想要解压到指定目录 需要使用unzip .jar -d 目录 如: unzip pay.war -d /home/zookeeper1/tes ...
- Ubuntu14.04下如何安装Python爬虫框架Scrapy
按照官方文档的说明,安装scrapy 需要以下程序或者库: (1).Python 2.7 (2).lxml. Most linux distributions ships PRepackaged ve ...
- LeetCode-Largest Rectangle in Histogram O(n) 详析-ZZ
http://www.cnblogs.com/felixfang/p/3676193.html Largest Rectangle in Histogram Given n non-negative ...
- Oracle案例06—— OGG-01098 Could not flush "./dirdat/e1000004383" (error 28, No space left on device)
一.前言 自从换了新环境,各种问题层出不穷,如果不是之前积累的经验丰富,估计都歇菜了,看来作为数据库全栈工程师(oracle/mysql/sqlserver/sap hana/pg/mongodb/r ...
- jbd2/dm-2-8 io太高
用iotop查看发现[jbd2/dm-2-8]几乎占用了99%的io使用率,但是却没有输入输出 后来上网查找,网上有人说是个内核bug,需要升级内核,或者降低jdb2的提交次数,即重新挂载磁盘 添加c ...
- background-color和background-image相关细节
1.background-color 是以border-box作为他的左上角来定位的 2.background-image 默认是以padding-box作为他的左上角来定位的 3.backgroun ...
- 关于数据库插入sql操作速度的影响
大概看了以下,适当多线程数据库连接操作比单线程效率高 多个sql语句组合后调用数据库连接执行比单个sql循环执行效率高的多 下面是几个参考资料,有空的时候详细整理一下 https://blog.csd ...
- Java关于日期时间的工具类
import java.sql.Timestamp; import java.text.ParseException; import java.text.ParsePosition; import j ...