百度云对象存储BOS上传文件(tp5.1)

2023-10-10 16:59

本文主要是介绍百度云对象存储BOS上传文件(tp5.1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


一、下载

两种下载方式

  1. composer require baidubce/bce-sdk-php 虽然使用简单直接use就行,但是不推荐了,因为包好久没更新了
  2. 官网SDK(推荐方式) 下载链接

二、使用步骤

1.配置

  1. 解压下载好的文件放在tp框架根目录下的extend
    在这里插入图片描述
  2. 相应的控制器引入
require_once '../extend/BaiduBce.phar';
use BaiduBce\Services\Bos\BosClient;
use BaiduBce\Services\Bos\CannedAcl;
  1. 配置文件设置
               $BOS_TEST_CONFIG=config('baidubce.');$client =new  BosClient($BOS_TEST_CONFIG);//var_dump($client);die;$bucketName = 'xxxxx';//bucket名字,相当于你在bucket创建好的那个文件夹,如果没有会自动创建。$exist = $client->doesBucketExist($bucketName);if(!$exist){$client->createBucket($bucketName);}$client->setBucketCannedAcl($bucketName, CannedAcl::ACL_PUBLIC_READ);//设置Bucket权限

其中的配置TP5框架config目录下新建相应的配置文件 我这边创建的是Baidubce在这里插入图片描述
对应的配置写进去

<?php
// +----------------------------------------------------------------------
// +----------------------------------------------------------------------
// | 百度云Bos对象存储服务
// +----------------------------------------------------------------------return ['credentials'=>['accessKeyId' =>"xxxxxxxx",'secretAccessKey'=>'xxxxxxxx'],'endpoint' => 'https://bj.bcebos.com',];

控制台中的BOS服务获取对应的accessKeyId和secretAccessKey
在这里插入图片描述

2.调用

废话不多说了,直接上代码吧:
$file = $this->request->file('file');
if(empty($file)){//上传验证
}else{//上传验证$info = $file->move('uploads');if($info){$BOS_TEST_CONFIG=config('baidubce.');$client =new  BosClient($BOS_TEST_CONFIG);$bucketName = 'test';//bucket名字 唯一$client->setBucketCannedAcl($bucketName, CannedAcl::ACL_PUBLIC_READ);//设置Bucket权限$name_path =str_replace('\\',"/",$info->getSaveName());//文件存储的路径$client->putObjectFromFile($bucketName,$name_path,"uploads/".$name_path);//上传$bos_url = $client->generatePreSignedUrl($bucketName,$name_path);//上传文件的地址$url = "uploads/".$info->getSaveName();//文件本地目录$ext = $info->getExtension();//文件后缀$path ="uploads".DIRECTORY_SEPARATOR.substr($info->getSaveName(),0,strpos($info->getSaveName(),DIRECTORY_SEPARATOR));//对应所在的文件夹unset($info);//如果不释放这个变量下面的unlink()函数会报错。if (file_exists($url)) {unlink($url);//删除本地文件rmdir($path);//删除对应的空文件夹}

总结

这里对文章进行总结:
以上就是百度云和tp框架的上传文件了,有需要的小伙伴结合自己的需求进行修改,比如我上面是没有放存储在数据库中和一些返回参数的相关的代码的,最后百度云BOS对象存储服务文档:

链接


这篇关于百度云对象存储BOS上传文件(tp5.1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/181826

相关文章

SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法

《SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法》在SQLyog中执行存储过程时出现的前置缩进问题,实际上反映了SQLyog对SQL语句解析的一个特殊行为,本文给大家介绍了详... 目录问题根源正确写法示例永久解决方案为什么命令行不受影响?最佳实践建议问题根源SQLyog的语句分

Java对象转换的实现方式汇总

《Java对象转换的实现方式汇总》:本文主要介绍Java对象转换的多种实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java对象转换的多种实现方式1. 手动映射(Manual Mapping)2. Builder模式3. 工具类辅助映

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

springboot上传zip包并解压至服务器nginx目录方式

《springboot上传zip包并解压至服务器nginx目录方式》:本文主要介绍springboot上传zip包并解压至服务器nginx目录方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录springboot上传zip包并解压至服务器nginx目录1.首先需要引入zip相关jar包2.然

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

Oracle存储过程里操作BLOB的字节数据的办法

《Oracle存储过程里操作BLOB的字节数据的办法》该篇文章介绍了如何在Oracle存储过程中操作BLOB的字节数据,作者研究了如何获取BLOB的字节长度、如何使用DBMS_LOB包进行BLOB操作... 目录一、缘由二、办法2.1 基本操作2.2 DBMS_LOB包2.3 字节级操作与RAW数据类型2.

Java实现数据库图片上传与存储功能

《Java实现数据库图片上传与存储功能》在现代的Web开发中,上传图片并将其存储在数据库中是常见的需求之一,本文将介绍如何通过Java实现图片上传,存储到数据库的完整过程,希望对大家有所帮助... 目录1. 项目结构2. 数据库表设计3. 实现图片上传功能3.1 文件上传控制器3.2 图片上传服务4. 实现