七牛云

对象存储简介

七牛云对象存储 Kodo 是七牛云提供的高可靠、强安全、低成本、可扩展的存储服务。您可通过控制台、API、SDK 等方式简单快速地接入七牛存储服务,实现海量数据的存储和管理。通过 Kodo 可以进行文件的上传、下载和管理。

此外,Kodo 的姊妹产品融合 CDN可以对文件下载进行加速,智能多媒体 API更是提供了丰富的基于海量数据深度学习算法的计算机视觉服务,如人脸技术、场景物体识别、OCR 文字识别和内容审核等。

Kodo 主要应用于以下一些场景:

在线存储和分发

七牛云对象存储提供高可用和高可靠的对象存储服务,您可以放心的将各种内容存储在云端。利用七牛云对象存储的扩展性和按需付费的优势,可以满足您持续快速增长的存储需求。您也可以搭配使用七牛云的对象存储和融合 CDN服务,实现全球覆盖、快速高效的内容分发。

镜像存储

七牛云对象存储支持镜像存储,这是一种快速的数据迁移和加速服务。可以帮助您实现无缝数据迁移,迁移过程中并不影响原有业务系统的访问。镜像存储适用于迁移原有业务系统的已有数据。

备份和归档

七牛云对象存储提供高可用和高可靠的存储解决方案来备份和归档您的关键数据。通过七牛云的身份验证机制可以设置不同的访问权限和级别,保障您数据的访问安全。相比传统自建的备份和归档存储系统,您无需在业务初期采购高昂硬件,无需担心数据增长带来的扩容问题,从而节省更多的存储成本、维护成本和人力资源成本。

富媒体数据处理

针对海量的用户生成内容,七牛云对象存储能够提供跨地域、高并发的内容上传和访问服务。同时结合七牛云提供的数据处理服务,可以在云端实现图片裁剪、格式转化和水印,以及视频转码、切片和拼接等富媒体处理功能,满足移动网络场景下多终端设备的访问需求。

静态资源托管

七牛云对象存储无缝集合各类第三方扩展插件,如 WordPress、Discuz、Emlog 等,并支持一键将各类插件里的静态资源托管到七牛云对象存储。

准备工作

1.进入七牛云官网https://www.qiniu.com/

2.创建创建个人账号,用户类型的话就是你是个人就选个人,企业就选企业,并且实名认证成功之后才能进行下一步操作

使用JavaSDK

开发者文档地址:https://developer.qiniu.com/kodo/sdk/1239/java

简介

此 SDK 适用于 Java 8 及以上版本。使用此 SDK 构建您的网络应用程序,能让您以非常便捷地方式将数据安全地存储到七牛云上。无论您的网络应用是一个网站程序,还是包括从云端(服务端程序)到终端(手持设备应用)的架构服务或应用,通过七牛云及其 SDK,都能让您应用程序的终端用户高速上传和下载,同时也让您的服务端更加轻盈。

Java SDK 属于七牛服务端SDK之一,主要有如下功能:

  1. 提供生成客户端上传所需的上传凭证的功能
  2. 提供文件从服务端直接上传七牛的功能
  3. 提供对七牛空间中文件进行管理的功能
  4. 提供对七牛空间中文件进行处理的功能
  5. 提供七牛CDN相关的刷新,预取,日志功能

使用实例

1.创建一个springboot项目(为什么使用springboot项目,它可以帮助我们快速的搭建一个web应用,没有学过springboot就用java项目),项目名为:QnyDemo

2.引入我们所需的依赖

<dependency>
    <groupId>com.qiniu</groupId>
    <artifactId>qiniu-java-sdk</artifactId>
    <version>[7.2.0, 7.2.99]</version>
</dependency>

在templates目录下创建一个uploadpic.html

创建一个工具类,也就是编写七牛云的文件上传的代码

/**
 * 七牛云文件上传
 * @author hzx
 */
public class QNYUtil {


    public String qnyUpload(MultipartFile file){
        Configuration cfg = new Configuration(Region.region0());
        //...其他参数参考类注释
        UploadManager uploadManager = new UploadManager(cfg);
        //...生成上传凭证,然后准备上传改成自己的密钥
        String accessKey = "SCLGDsfsqAvD_spr8Uklh5wbyp98W3sJ59RDltsfsffs";
        String secretKey = "lc_-8AWQZwj2uBqEjC7XDerBOiAVDyX_agOydss";
        String bucket = "picName";//对象储存控件名
        //默认不指定key的情况下,以文件内容的hash值作为文件名
        String key = null;
        String imgUrl = "";
        JSONObject data = new JSONObject();

        try {

            InputStream InputStream = file.getInputStream();
            Auth auth = Auth.create(accessKey, secretKey);
            String upToken = auth.uploadToken(bucket);
            try {
                Response response = uploadManager.put(InputStream, key, upToken, null, null);
                //解析上传成功的结果
                DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
                imgUrl = putRet.hash;
                System.out.println("http://q5smo3360.bkt.clouddn.com/" + imgUrl);
            } catch (QiniuException ex) {
                Response r = ex.response;
                System.err.println("sssssss" + r.toString());
                try {
                    System.err.println("sssssss1" + r.bodyString());
                } catch (QiniuException ex2) {
                }
            }
        } catch (IOException ex) {
 S       }

        return imgUrl;
    }
}

代码解析

bucket是你七牛云上的存储空间名,创建对象存储空间

进入控制台——》对象储存——》空间管理——》新建空间


image.png

imgUrl 返回的事在七牛云上面的空间的图片名加后缀

在页面上我们需要加上

编写controller层代码

测试访问 http://localhost:7777/uloadPic

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

只有不断的努力才会有更大的惊喜等着你去发现!!