zoukankan      html  css  js  c++  java
  • tp5 -- 腾讯云cos简单使用

    因项目需要,本来是需要对接阿里云oss,但因客户错误将云存储买成腾讯云cos,因此简单做了个对象上传使用

    首先下载cos的sdk:

    三种方式在文档上面都有介绍

    SDK 安装有三种方式:Composer 方式Phar 方式 和 源码方式

    本渣用的是最low 的源码方式

    下载完成后解压放至TP5的第三方类库extend/下(感觉文件名太长本渣将解压后的sdk文件名改为了sdk):

    然后说下腾讯云cos的配置参数:

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

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

    return [
        'QCLOUD' => [
            'appId'     => '******',   //账户中心的 APPid
            'SecretId'  => '******',   //开发者拥有的项目身份识别 ID
            'SecretKey' => '******',   //开发者拥有的项目身份密钥
            'region'    => 'bj',       //你的Bucket所有地域 例如上海 (sh)写简称就可以
            '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'

    最后就是简单的对象上传请求了

     SDK 放在 根目录下/extend/

    我的路径/extend/sdk

    其中

     saveName 是你文件上传的文件名称 注意路径 "/" window下的是 "" 这样的话上传上去不会自动创建文件夹。

     pathname 你要上传的本地文件地址

        /**
         * 腾讯云Cos -- 上传对象
         */
        function qcloudCosUpload($file = '' , $info = array() , $fileInfo)
        {
            if( !$file  || !$info ){
                return json_error('缺失参数 ');
            }
            //引用COS sdk
            	hinkLoader::import('sdk.vendor.autoload'); 
            $cosClient = new QcloudCosClient(
                array(
                    'region'      => config('QCLOUD.region'),
                    'credentials' => array(
                        'appId'     => config('QCLOUD.appId'),
                        'secretId'  => config('QCLOUD.SecretId'),
                        'secretKey' => config('QCLOUD.SecretKey')
                    )
                )
            );
            $file = $info['pathname'];
            try {
                $data = array( 'Bucket' => config('QCLOUD.bucket'), 'Key'  => $info['saveName'], 'Body' => fopen($file, 'rb') );
                //判断文件大小 大于5M就分块上传
                $result = $cosClient->Upload( $data['Bucket'] , $data['Key'] , $data['Body']  );
    
                if( $result ){
                    return $result;
                }
            } catch (Exception $e) {
                return json_error('上传失败 ');
            }
    
        }

    至此,简单的上传对象即已完成。

    感谢您的查看。

    本文主要借鉴于:https://www.cnblogs.com/inkwhite/p/9057339.html

    再次感谢墨白`Blog 大大的博客分享。

    2019年05月09日

  • 相关阅读:
    nginx default setting
    ubuntu dotnet core run 十月第一弹
    vwmare 十月第 1 弹
    学习 lind 语 里的一些组件使用。
    学习  解决用户验证、单点登录、api访问控制的开源框架 的 十月 第一弹:
    学习 lind api 十月 第5弹
    Data for the People: How to Make Our Post-Privacy Economy Work for You
    iframe高度的自适应
    dtree在ie6下点击页面报错
    前台页面分页对总页数的判断
  • 原文地址:https://www.cnblogs.com/YFYQ/p/10840050.html
Copyright © 2011-2022 走看看