百度云对象存储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对象存储服务文档:

链接



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部