Laravel使用腾讯云COS服务

1.当我们在开发过程中,常常会因为图片过多导致服务器压力增大,减缓网站运行速度
2.所以我们用到了腾讯的COS服务
第一步:首先我们去腾讯云里面申请一个桶(远程存储)https://console.cloud.tencent.com/cos5/bucket
第二步:因为使用这个桶我们需要两个密钥(云 API 密钥 SecretId,云 API 密钥 SecretKey)所以我们得再去申请这两个密钥
https://console.cloud.tencent.com/cos5/key
这两个东西都完善后,就是代码实现过程
laravel框架
①:composer require freyo/flysystem-qcloud-cos-v5
②:在 config/app.php 的 providers 下添加->>>>>Freyo\Flysystem\QcloudCOSv5\ServiceProvider::class,
③:在 filesystems.php 中的 disks 里下添加

'disks'=>[
    // ...
    'cosv5' => [
          'driver' => 'cosv5',
          'region'          => env('COSV5_REGION', 'ap-guangzhou'),
          'credentials'     => [
              'appId'     => env('COSV5_APP_ID'),
              'secretId'  => env('COSV5_SECRET_ID'),
              'secretKey' => env('COSV5_SECRET_KEY'),
          ],
          'timeout'         => env('COSV5_TIMEOUT', 60),
          'connect_timeout' => env('COSV5_CONNECT_TIMEOUT', 60),
          'bucket'          => env('COSV5_BUCKET'),
          'cdn'             => env('COSV5_CDN'),
          'scheme'          => env('COSV5_SCHEME', 'https'),
    ],
],

④:在/filesystems.php中修改
‘default’ => ‘cosv5’,

<?php
namespace App\Http\Controllers\crontab;
use Qcloud\Cos\Client;


class CosController extends CrontabBaseController
{
    protected $crontab;
    protected $user;
    protected $cosClient;
    public function __construct()
    {
        parent::__construct();
        $secretId = "AKIDvAB0e4hOGxQecjZFnAIBmCNM"; //"云 API 密钥 SecretId";
        $secretKey = "teDWZMuCF2qQlx0oX5NIlz3sVP"; //"云 API 密钥 SecretKey";
        $region = "ap-beijing"; //设置一个默认的存储桶地域
        $this->cosClient = new Client(
            array(
                'region' => $region,
                'schema' => 'https', //协议头部,默认为http
                'credentials'=> array(
                    'secretId'  => $secretId ,
                    'secretKey' => $secretKey)));
    }

    /**
     * 上传图片的到COS
     */
    public function add_cos(){
        try {
            $bucket = 'jiawei-1258859392'; //存储桶名称
            $key = "/picture/180927085458.jpeg";//文件在桶中的位置
            $srcPath = "http://62.234.77.1//uploads/180927085458.jpeg";//本地文件绝对路径
            $result = $this->cosClient->putObject(array(
                        'Bucket' => $bucket,
                        'Key' => $key,
                        'Body' => fopen($srcPath, 'rb')));
                        print_r($result);
        } catch (\Exception $e) {
            echo "$e\n";
        }
    }

    /**
     * 获取远程桶的所有内容
     */
    public function listObjects(){
        try {
            $bucket = "jiawei-1258859392"; //存储桶名称 格式:BucketName-APPID
            $prefix = ''; // 列出对象的前缀
            $marker = ''; // 上次列出对象的断点
            while (true) {
                $result = $this->cosClient->listObjects(array(
                    'Bucket' => $bucket,
                    'Marker' => $marker,
                    'MaxKeys' => 1000 // 设置单次查询打印的最大数量,最大为1000
                ));
                foreach ($result['Contents'] as $rt) {
                    // 打印key
                    echo($rt['Key'] . "\n");
                }
                $marker = $result['NextMarker']; // 设置新的断点
                if (!$result['IsTruncated']) {
                    break; // 判断是否已经查询完
                }
            }
        } catch (\Exception $e) {
            echo($e);
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值