• 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日

  • 相关阅读:
    10、函数介绍、函数参数、函数的返回值
    9、bytes类型,文件处理
    8、集合类型、文件处理
    7、列表类型、元组、字典类型
    6、for循环补充、可变类型与不可变类型、基本操作
    5、while循环与for循环
    4、基本运算符、if语法
    3、变量、常量、基本数据类型
    爬虫(一)
    小技能(二)
  • 原文地址:https://www.cnblogs.com/YFYQ/p/10840050.html
Copyright © 2020-2023  润新知