项目场景:tp5 华为云OBS对象存储


官网下载SDK文件 extend 下放obs文件:

@Override<?php
/*** Created by PhpStorm.* User: Administrator* Date: 2019/10/30 0030* Time: 下午 1:07*/namespace app\api\controller;
use think\Db;
use think\Exception;
use GuzzleHttp\Client;
use think\Request;
use Obs\ObsClient;
use Obs\ObsException;
use GuzzleHttp\Exception\ClientException;class File extends Base
{public $obsClient;public $bucketName;public function __construct(){parent::__construct();$ak = '你的key';$sk = '你的sk';$endpoint = '地址';$this->bucketName = '桶名';   //这些参数可以查看文档$this->obsClient = ObsClient::factory(array ('key' => $ak,'secret' => $sk,'endpoint' => $endpoint,));}//以下是实现图片存储方法;根据自己需求修改   我这里是实现单图和多图方法public function uploadImgAndFile(Request $request){$files=$file=$request->file('file');if(!is_array($file)){$file=[];$file[]=$files;}if(empty($file[0])){$result = ['code' => 400, 'msg' => '文件不能为空', 'data' => ''];}else{$mess=[];foreach ($file as $k=>$v){$info = $v->getInfo();//上传文件最大大小,单位M$maxSize = 10;//支持的上传文件类型$allowed_extensions = ["png", "jpg", "gif","pdf"];//返回信息json$data = ['code' => 400, 'msg' => '上传文件失败', 'data' => ''];if ($info['error']>0) {$data['msg'] = $_FILES["file"]["error"];;$mess[]=$data;} else {//检测文件类型if (!in_array(strtolower(substr(strrchr($info['name'], '.'), 1)), $allowed_extensions)) {$data['msg'] = "请上传" . implode(",", $allowed_extensions) . "格式的文件";$mess[]=$data;}//检测文件大小if ($info['size'] > $maxSize * 1024 * 1024) {$data['msg'] = "文件大小限制" . $maxSize . "M";$mess[]=$data;}}$newFile = 'image/'.date('Ymd')."/".getRandomString(10).strrchr($info['name'], '.');try {$resp = $this->obsClient->putObject(['Bucket' => $this->bucketName,//桶名'Key' => $newFile,// (文件路径1/文件路径2/文件名.文件后缀)'Body' =>$v,'ACL' => ObsClient::AclPublicRead,//设置对象访问权限为公共读]);if($resp ['HttpStatusCode']==200){//$resp ['HttpStatusCode']状态码 200就是成功$data = ['code' => 200,'msg' => '上传文件成功','data' => $resp ['ObjectURL'],//华为云上的文件地址];$mess[]=$data;}else{$data['data'] = $resp ['HttpStatusCode'].':'.$resp['Reason'];$mess[]=$data;}} catch ( ObsException $e ) {$mess[]=$data;}}$result=['code' => 200, 'msg' => '操作成功', 'data' => $mess];}return json($result);}
}

原因分析:

执行时若composer没有安装指定的扩展 需自行安装 composer.json添加想要的扩展,最后执行 composer update


{"require": {"qiniu/php-sdk": "^7.2","guzzlehttp/guzzle" : "6.3.0","guzzlehttp/psr7" : "1.4.2","guzzlehttp/promises" : "1.3.1","psr/http-message" : "1.0.1","monolog/monolog" : "1.23.0","psr/log" : "1.0.2"}
}# 批注:
只用于个人总结,菜鸟一枚大佬轻喷,如有问题欢迎指证;

tp5 华为云OBS对象存储相关推荐

  1. 华为云OBS对象存储服务:值得拥有的贴心的存储管家

    对象存储服务(Object Storage Service,OBS)是一个基于对象的存储服务,为客户提供海量.安全.高可靠.低成本的数据存储能力,使用时无需考虑容量限制,并且提供多种存储类型供选择,满 ...

  2. 华为云OBS对象存储使用临时URL访问,并对下载文件重命名

    目录 解读 1.使用临时URL访问OBS,并获取临时URL 官方文档 举例 2.使用临时URL访问OBS,并对临时URL下载的文件重命名 分析 举例 解读 在使用OBS进行对云上文件进行下载的时候,发 ...

  3. 前端js华为云obs上传下载文件与进度条的设置

    前端js华为云obs上传下载文件与进度条的设置 首先下载OBS BrowserJS SDK安装包 用git将代码拉到本地 git clone https://github.com/huaweiclou ...

  4. 华为云OBS文件上传和下载

    华为云Obs文件上传和下载 使用的技术 前端是Vue框架,element-ui 后端是Springboot项目 服务器是华为云 文件上传下载地方是华为云Obs对象存储服务 1.前端上传代码 el-up ...

  5. 华为OBS对象存储,每个人都应该用一用

    随着互联网硬件与软件的不断迭代,如今用户在网上冲浪的时间越来越多,智能手机的兴起诞生了各类短视频.快资讯网站以及自媒体市场.但由于大量的数据出现,对于用户及企业来说,如何存储这些数据成为了不可忽视的难 ...

  6. 天翼云 Java对接OBS对象存储

    天翼云 对接OBS对象存储 前言 最近公司帮国企做一个项目,对方要求云厂商使用电信天翼云,我们之前一直都在使用阿里云,因为国企情况比较特殊,优先考虑国资背景的云厂商; 最近才改造完rocketMQ,现 ...

  7. 云存储解决方案-华为云OBS服务的基础使用

    云存储解决方案-华为云OBS 云存储解决方案-华为云OBS 1. 简介 2. 开通OBS 2.1 进入官网 2.2 充值(可以不做) 2.3. 开通OBS 3. OBS快速入门 3.1 创建测试工程, ...

  8. SpringBoot整合华为云OBS

    一.参考项 华为云 OBS(官网): 对象存储服务OBS官网_海量安全高可靠_数据云存储解决方案-华为云 OBS SDK for Java(官网): SDK下载_对象存储服务 OBS_Java_华为云 ...

  9. sscom串口网络数据调试器使用post方法向华为云obs桶上传文件和图片

    原贴地址:sscom串口网络数据调试器使用post方法向华为云obs桶上传文件和图片-云社区-华为云 [摘要] 之前发了文章"postman使用post方法向华为云obs桶上传文件和图片&q ...

最新文章

  1. jdk jre jvm三者之间的关系
  2. Java动态编程初探——Javassist
  3. 《研磨设计模式》chap22 装饰模式Decorator(3)I/O流
  4. div赋值,取值和input赋值,取值
  5. 第六十五期:IBM净利润下降38%,旧时代巨头如何自救?
  6. Android平台RTMP推送端实现外部数据对接推送和录像
  7. IT男1-10分打分标准,请对号入座!
  8. El表达式和fn函数一起使用
  9. DNS基本概念和相关命令
  10. java 远程监控文件系统_Java 文件系统监控(WatchService)
  11. java gui介绍_IntelliJ IDE 开发Java GUI 入门
  12. Enterprise Solution 进销存管理软件 C/S架构,支持64位系统 物流,资金流,信息流全面集成...
  13. 敏捷开发之产品级经验分享
  14. 脚本实现为一系列账号生成随机密码
  15. 大一linux考试试题及答案,大一计算机期末考试试题及答案
  16. JAVA智能分析的简单聚众筹平台计算机毕业设计Mybatis+系统+数据库+调试部署
  17. Oracle11g RAC集群重启操作
  18. java 支付宝支付 demo_java开发支付宝支付详细流程_demo的运行
  19. 【BP数据预测】基于matlab天牛须算法优化BP神经网络数据预测【含Matlab源码 1316期】
  20. 六年如逆旅,我亦是行人:一个顾问的六年安全从业经历

热门文章

  1. 采用计算机数控技术的自动控制系统为,数控加工编程技术期末考试综合复习题...
  2. 有信仰自然好,关键是信仰带我们去何方。如果信仰带我们去沟里,那我 们还是暂且留在岸上看天色吧。----韩寒
  3. k8s部署Traefik
  4. 小牛的安卓笔记-----底部导航栏的实现以及用TabLayout+ViewPager+Fragment实现页面滑动切换
  5. c++ 圆上任意点坐标计算_圆曲线上任意一点坐标计算
  6. Python注释规范
  7. String:字符串 - 不可变的字符序列(字符数组)
  8. 2 PPT快捷键使用大全(Shift、Ctrl 和Ctrl +Shift键的快捷键功能)
  9. 明明pycharm里面都能运行,为什么在CMD中就不能运行了呢,报ImportError: No module named 'commom' 的错误
  10. RSA 公钥密码系统背后的数学原理