七牛云的使用

七牛云的使用

1、https://www.qiniu.com/用qq或者微信登入七牛云

2、添加一个对象存储

七牛云的使用七牛云的使用

3、在个人中心获取appkey和appsecret

七牛云的使用

4、绑定一个域名

七牛云的使用

5、把sdk放在自己的项目中

七牛云的使用

封装一个上传的类

<?php
 
require 'vendor/autoload.php';
 
class qiniuYunInit
{
 
    /**
     * @var string
     */
    private $access_key;
 
    /**
     * @var string
     */
    private $secret_key;
 
    /**
     * 域名
     * @var string
     */
    private $domain = "";
 
    /**
     * 配置秘钥对
     * @param array $config
     */
    public function setConfig($config)
    {
        $this->access_key = $config['access_key'];
        $this->secret_key = $config['secret_key'];
        $this->domain = $config['domain'];
    }
 
    /**
     * 获取上传图片的凭证
     * @param string $bucket 空间名
     * @param string $resource_key 资源名称
     * @param int $deadline token有效时间
     * @param array $opts 自定义参数
     *     'insertOnly'=>1, 只能新增图片
     *     'mimeLimit'=>'image/*', 只允许上传图片
     *
     * @return string
     */
    public function getUploadToken($bucket, $resource_key, $deadline = 3600, $opts = null)
    {
        $auth = new \Qiniu\Auth($this->access_key, $this->secret_key);
        return $auth->uploadToken($bucket, $resource_key, $deadline, $opts);
    }
 
    /**
     * 直传文件到七牛云
     * @param string $upload_token
     * @param string $key
     * @param string $filename
     * @return array
     */
    public function uploadFile($upload_token, $key, $filename)
    {
        $uploader = new \Qiniu\Storage\UploadManager();
        return $uploader->putFile($upload_token, $key, $filename);
    }
 
    /**
     * 获取公共空间的资源访问链接 http://p7sqxug2z.bkt.clouddn.com/
     * @param string $key 资源名
     * @param string $scheme
     * @return string
     */
    public function getPublicResourceUrl($key, $scheme = 'http')
    {
        $key = ltrim($key, "/");
        return "{
   $this->domain}/{
   $key}";
    }
 
    /**
     * 获取访问资源的域名
     * @return string
     */
    public function getVisitDomain($scheme = 'http')
    {
        return "{
   $scheme}://{
   $this->domain}/";
    }
 
}

代码中这样写

/**
     * 图片上传到七牛云
     * @param string $tmpLocation 临时图片地址 绝对地址,/www/initphp/www/upload/temp/xxx.jog
     * @param string $savePath 美图云文件的存储位置
     * @param string $fileType 文件类型
     * @return string 上传到美图云后的地址
     * */
    protected function uploadToQNCloud($tmpLocation, $savePath = 'test/' ,$fileType = 'image/*')
    {
        if (is_file($tmpLocation)) {
 
            $config = InitPHP::getConfig();
            $this->getQiniuyun()->setConfig($config['qiniu_yun']);
            $path_data = pathinfo($tmpLocation);
            $savePath = trim($savePath, "/");//去掉两边的"/"
            $key = $savePath . '/' . date("Ymd") . '/' . substr(md5(getRandoms(4) . uniqid()), 0, 10) . $path_data['basename'];
 
            $uploadToken = $this->getQiniuyun()->getUploadToken($config['qiniu_yun']['bucket'], $key, 10, array(
                'insertOnly' => 1, //只能新增图片
                'mimeLimit' => $fileType, // 只允许上传图片
            ));
            $this->getQiniuyun()->uploadFile($uploadToken, $key, $tmpLocation);
            $url = $this->getQiniuyun()->getPublicResourceUrl($key);
            @unlink($tmpLocation);
            return $url;
        }
    }

    /**
     * @return qiniuYunInit|object
     */
    private function getQiniuYun()
    {
        return InitPHP::getLibrarys('qiniuYun');
    }

配置信息写在自己的配置文件中。

注意:1、上线时在七牛云上要配置域名,不然cdn无效,而且会限制访问速度等等

https://blog.csdn.net/yanyan42/article/details/80684614

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/112905.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 计算机二级C语言公共基础知识,以及习题总结(一)

    计算机二级C语言公共基础知识,以及习题总结(一)二级C语言公共基础知识,以及习题总结,算法的基本概念,算法的复杂度,数据结构的基本概念,什么是数据结构,数据结构的图形表示,线性结构和非线性结构,线性表的基本概念,线性表的顺序存储结构,栈和队列,队列及其基本运算,线性链表的基本概念

  • IIC通信协议详解

    IIC通信协议详解IIC通信协议详解IIC的概述IIC分为软件IIC和硬件IICIIC通信协议空闲状态开始信号与停止信号开始信号程序:IIC的概述IIC:两线式串行总线,它是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbs以上。时钟线SCL:在通信过程起到控制作用。数据线SDA:用来一位一位的传送数据。IIC分为软件IIC和硬件IIC软件IIC:软件IIC通信指的是用单片机的两个I/O端口模拟出来的IIC,用

  • CI框架与Thinkphp框架的一些区别

    CI框架与Thinkphp框架的一些区别

  • SpringCloud与Dubbo的比较

    SpringCloud与Dubbo的比较Dubbo一、dubbo简介Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。Dubbo是一款高性能、轻量级的开源JavaRPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。现已发展成为Apache的顶级孵化开源项目,详见官网:…

  • CANoe之CAPL编程(CANoe系列其三)「建议收藏」

    CANoe之CAPL编程(CANoe系列其三)「建议收藏」CANoe之CAPL编程(CANoe系列其三)摘要1、CAPL概述1.1、CAPL语言特性1.2、CAPL的程序结构1.3、CAPL的数据类型1.4、CAPL事件类型概述2、CAPL事件类型2.1、系统事件2.2、CAN控制器事件2.3、CAN消息事件2.4、时间事件2.5、键盘事件2.6、错误帧事件2.7、环境变量事件2.8、系统变量事件摘要    &…

    2022年10月25日
  • C#的WinForm窗体程序中如何设置TextBox为密码文本框

    C#的WinForm窗体程序中如何设置TextBox为密码文本框C#的WinForm窗体程序中如何设置TextBox为密码文本框-2019-08-0323:59在C#的WinForm窗体程序开发过程中,TextBox是常用的文本框控件,默认的TextBox

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号