tp5+腾讯云cos(对象存储)实现上传图片、视频等文件

本文介绍了如何在腾讯云开通COS对象存储,并通过PHP使用源码方式集成SDK进行文件上传。详细步骤包括:开通COS、下载SDK并放置到项目目录、设置配置参数如appid、SecretId、SecretKey和bucket,以及指定region。在上传对象时,通过putObject方法实现文件上传到COS,并在成功后删除本地文件。
摘要由CSDN通过智能技术生成

一、从腾讯云控制台中开通cos
二、下载cos的sdk。SDK 安装有三种方式:Composer 方式、Phar 方式 和 源码方式
本章用的最笨的源码方式。
下载完成后解压放至TP5的第三方类库extend/下(感觉文件名太长可以将文件名改了我的就叫tengxunyun)
然后说下腾讯云cos的配置参数:

appid个人实名认证中获得

其中SecretId和SecretKey参数在腾讯云-》对象存储-》秘钥管理获得

bucket 参数可直接请求接口,也可同样在腾讯云-》对象存储-》存储桶列表直接创建

$region = config(‘tengxunyun_cos.endpoint’); //你的Bucket所有地域 例如上海 (ap-shanghai)写简称就可以
$appId = config(‘tengxunyun_cos.appId’); //账户中心的 APPid
$secretId = config(‘tengxunyun_cos.SecretId’); //开发者拥有的项目身份识别 ID
$secretKey = config(‘tengxunyun_cos.SecretKey’); //开发者拥有的项目身份密钥

    // 存储空间名称
	$bucket = config('tengxunyun_cos.bucket');        //COS中用于存储桶名称

其中region 地区在文档上也有介绍:

以下是对应的地区简称(了解就行):

//地域缩写
‘cn-east’=>‘ap-shanghai’,
‘cn-sorth’=>‘ap-guangzhou’,
‘cn-north’=>‘ap-beijing-1’,
‘cn-south-2’=>‘ap-guangzhou-2’,
‘cn-southwest’=>‘ap-chengdu’,
‘sg’=>‘ap-singapore’,
‘tj’=>‘ap-beijing-1’,
‘bj’=>‘ap-beijing’,
‘sh’=>‘ap-shanghai’,
‘gz’=>‘ap-guangzhou’,
‘cd’=>‘ap-chengdu’,
‘sgp’=>‘ap-singapore’
简单的对象上传请求:
/**
* 腾讯云Cos – 上传对象
*
*
*
*/
private function qcloudCosUpload($file_name = ‘file’)
{

    require_once env('root_path').'extend'.DIRECTORY_SEPARATOR.'tenxunyun'.DIRECTORY_SEPARATOR.'vendor'.DIRECTORY_SEPARATOR.'autoload.php';
    
    
    $key =  upload($file_name);
    
    
    $region      = config('tengxunyun_cos.endpoint');
    $appId     = config('tengxunyun_cos.appId');
    $secretId  = config('tengxunyun_cos.SecretId');
    $secretKey = config('tengxunyun_cos.SecretKey');
    
    // 存储空间名称
	$bucket = config('tengxunyun_cos.bucket');

    // $secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
    // $secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
    // $region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
    $cosClient = new \Qcloud\Cos\Client(       
  1. List item

//方法的路径一定要写对,否则一直报错,小编就调了两个小时
array(
‘region’ => $region,
‘schema’ => ‘https’, //协议头部,默认为http
‘credentials’=> array(
‘secretId’ => $secretId,
‘secretKey’ => $secretKey
)
)
);

    try { 
      $result = $cosClient->putObject(array( 
          'Bucket' => $bucket, //格式:BucketName-APPID 
          'Key' => $key['data'], 
          'Body' => fopen($key['img'], 'rb'),             //这里一定要填写正确,否则上传到cos的文件全是0kb
      )); 
      // 请求成功 
      if($result){
          unlink($key['img']);           //删除本地文件
          $resData['code'] = 200;
          $resData['data'] = "https://" . $result['Location'];;
          return $resData;
      }
    //   return $result;
    } catch (Exception $e) { 
      // 请求失败 
      
        $resData['code'] = 201;
        $resData['data'] = '';
        return $resData;
    //   echo($e); 
    }

}

至此,简单的上传对象就完成了,我从网上找了很多,后来自己琢磨出来的,希望对你有帮助!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值