首先下载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 (上传、删除)的更多相关文章

  1. 阿里云对象存储oss上传文件夹

    最近公司做工程项目,实现文件夹云存储上传. 网上找了一天,发现网上很多代码都存在相似问题,最后终于找到了一个满足我需求的项目. 工程如下: 这里对项目的大文件传输功能做出分析,怎么实现文件夹上传的,如 ...

  2. 阿里云OSS对象存储 简单上传文件

    不得不说阿里云的命名比较让人摸不着头脑,开始以为是文件存储NAS,弄了半天什么文件系统,挂载点的搞不明白.后来才搞清楚原来 对象存储OSS才是我需要的. 其中EndPoint就是画红框的部分,但是要加 ...

  3. 阿里云对象存储OSS及CDN加速配置

    目录 十大云存储服务商 1. 登陆阿里云官网,开通对象存储服务 OSS 2. 创建存储空间 3. 绑定自定义域名 4. 配置阿里云CDN加速 5. 购买阿里云免费SSL证书 6. 阿里云CDN配置HT ...

  4. TiKV 在京东云对象存储元数据管理的实践

    京东云对象存储是在 2016 年作为公有云对外公开的,主要特点是可靠.安全.海量.低成本,应用于包括一些常用的业务场景,比如京东内部的京东商城视频/图片云存储,面向京东云公有云外部的开发者的服务,和面 ...

  5. 微信小程序基于腾讯云对象存储的图片上传

    在使用腾讯云对象存储之前,公司一直使用的是传统的FTP的上传模式,而随着用户量的不断增加,FTP所暴露出来的问题也越来越多,1.传输效率低,上传速度慢.2.时常有上传其他文件来攻击服务器,安全上得不到 ...

  6. php 腾讯云 对象存储V5版本 获取返回的上传文件的链接方法

    腾讯云 对象存储V5版本 文档地址:https://github.com/tencentyun/cos-php-sdk-v5 调用简单文件上传方法: 返回数据如下 Array ( [data:prot ...

  7. Delphi阿里云对象存储OSS【支持上传文件、下载文件、删除文件、创建目录、删除目录、Bucket操作等】

    作者QQ:(648437169) 点击下载➨Delphi阿里云对象存储OSS             阿里云api文档 [Delphi阿里云对象存储OSS]支持 获取Bucket列表.设置Bucket ...

  8. Docsify+腾讯云对象存储 COS,一键搭建云上静态博客

    最近一直在想如何利用 COS 简化静态博客的搭建过程.搜了很多的静态博客搭建过程,发现大部分的静态博客都要通过编译才能生成静态页面.功夫不负有心人,终于让我找到了一个超简洁博客的搭建方法. 效果预览 ...

  9. java开发之阿里云对象存储OSS和云数据库Memcache的使用

    web开发中标配:aliyun ECS(阿里云服务器),aliyun RDS(阿里云数据库),aliyun OSS(阿里云对象存储),aliyun Memcache(阿里云缓存数据库). 今天就介绍下 ...

随机推荐

  1. 仿照jQuery进行一些简单的框架封装(欢迎指教~)

    (function(window,undefined){ var arr = [], push = arr.push, slice = arr.slice; //首先要做的就是封装一个parseHtm ...

  2. java中复制数组的5种方法

    “=”,相当于将一个数组变量的引用传递给另一个数组;如果一个数组发生改变,那么引用同一数组的变量也要发生改变.,这一种勉强算是吧 使用FOR循环,将数组的每个元素复制或者复制指定元素,不过效率差一点 ...

  3. MySQL5.7的组提交与并行复制

    从MySQL5.5版本以后,开始引入并行复制的机制,是MySQL的一个非常重要的特性. MySQL5.6开始支持以schema为维度的并行复制,即如果binlog row event操作的是不同的sc ...

  4. LUHN算法

    LUHN算法,主要用来计算信用卡等证件号码的合法性. 1.从卡号最后一位数字开始,偶数位乘以2,如果乘以2的结果是两位数,将两个位上数字相加保存. 2.把所有数字相加,得到总和. 3.如果信用卡号码是 ...

  5. git-day1-安装和基础使用

    Git介绍 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件 ...

  6. 学习Road map Part 02 机器学习和图像识别

    方法:结合项目.竞赛.mentor计划

  7. 深入解析Backbone.js框架的依赖库Underscore.js的作用

    这篇文章主要介绍了深入解析Backbone.js框架的依赖库Underscore.js的作用,用过Node.js的朋友对Underscore一定不会陌生:)需要的朋友可以参考下 backbone必须依 ...

  8. 推荐一个非常好用的Chrome扩展应用,用于美化Json字符串

    这个Chrome扩展应用的名称叫JSON Viewer Awesome 1.0.6: 安装之后,在Chrome工具栏会出现一个紫色的小图标: 然后可以把任意Json字符串直接贴到Chrome界面里: ...

  9. SpringMVC WEB应用上传照片的实现

    使用是SpringMVC+Hibernate搭建的WEB应用,使用jsp写的前端页面. 如何将文件上传到服务器呢?我这里使用的是Multipart的形式将文件上传. 这里有两大步:一是配置multip ...

  10. AsyncTask基础知识

    大家都知道,在子线程中是不能更新UI的,必须要采用异步消息处理机制.一般的做法就是在有需要的地方,使用Handler发送消息给主线程,然后在主线程中处理消息更新UI.如果好多子线程都有更新UI的需求, ...