七牛云的使用

七牛云的使用

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 《视频直播技术详解》系列之一:开篇[通俗易懂]

    《视频直播技术详解》系列之一:开篇[通俗易懂]此系列为七牛云的原创,仅转载备份,以供查看。随着互联网用户消费内容和交互方式的升级,支撑这些内容和交互方式的基础设施也正在悄悄发生变革。手机设备拍摄视频能力和网络的升级催生了大家对视频直播领域的关注,吸引了很多互联网创业者或者成熟企业进入该领域。七牛云作为一家以基础服务能力见长的云计算公司,于6月底发布了一个针对视频直播的实时流网络LiveNet和完整的直播云解决方案,很多

    2022年7月23日
    13
  • Java反射 Class类常用方法详解

    Java反射 Class类常用方法详解1.返回Class类对应的实体类的相关的Class类的方法:如果我们已经有了一个类的Class类,可以使用下面的一些方法来获得它相关的类:(1)返回当前Class类对应的实体类的父类的Class类:publicClass&lt;?superT&gt;getSuperclass()例如:publicstaticvoidmain(String[]args)throwsClassN…

    2022年5月27日
    39
  • clion2022.01.4激活码【中文破解版】2022.03.07

    (clion2022.01.4激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年4月2日
    234
  • idea2022.2.4激活码(JetBrains全家桶)

    (idea2022.2.4激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月30日
    914
  • CAP原理和数据高可用性

    CAP原理和数据高可用性对网站而言,数据是最宝贵的资源,硬件可以购买,软件可以重构,但是数据(用户数据,交易数据,商品数据)一旦丢失,对网站的打击可以说是毁灭性的。数据高可用性数据高可用性包括如下几个方面的含义数据持久性保证数据可以持久存储,在各种情况下都不会出现数据丢失。为了实现数据持久性,不但在写入数据是需要写入持久性存储,还需要将数据备份到一个或多个副本,存放在不同的物理存储设备上,在某个存储故障发生是,数据不会丢失

    2022年5月12日
    41
  • PAT准备之2018.7.24

    昨天被我划水滑过去了,今天终于完成了救赎,基本没有划水,一直在认真的学习,今天也做了不少题,发现自己还是有很多知识点薄弱的地方,还是基础不太好吧,以前总觉得自己这些东西都会,结果发现真到自己用的时候,真的是不会。。。唉!这个暑假再把基础知识补一补吧。今天也是做了三道题。如下1007MaximumSubsequenceSum(25)(25分)Givenasequenceo…

    2022年4月9日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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