上手七牛云存储

摘要:
我早就听说了七牛云存储,所以我终于有时间练习了。1.第一步是注册Qiniu帐户。由于这是一个测试,第一个应用程序是一个个人帐户。2.注册成功后,默认帐户为体验帐户。每月只有1G的空间容量和1G的下载流量。3.帐户经过身份验证后,将升级为标准帐户。虽然很难验证10G的空间容量和每月20G的下载流量,但Qiniu仍然很认真,这个免费软件包应该足以满足一般的小型网站应用。在认证表中

早就听说过七牛云存储,终于有时间上手实践。

1、第一步,注册七牛账号,由于是测试,首先申请的是个人账号

2、注册成功之后,默认是体验账号,每月只有1G的空间容量及1G的下载流量

      上手七牛云存储第1张

3、账号认证,认证成功之后将升级为标准账号,每月有10G的空间容量及20G的下载流量

      上手七牛云存储第2张

虽然认证麻烦了些,但看得出来,七牛还是很良心的,这种免费套餐对于一般的小型网站应用来说应该是足够了

说明一下,认证表单里,有一个“个人网址”的文本框,一开始我以为是空间的自定义域名,后来试了一下,应该就是个人网站地址,可以随便填,不影响使用。

 

4、认证成功之后,就可以正式开始使用七牛云了

首先需要创建一个存储空间,可以把这个存储空间简单理解为硬盘分区

我创建的存储空间名称是:myBucket,存储区域:华北

其实存储空间只支持小写,如上面我的存储空间创建成功之后就变成了:mybucket

 

然后需要为存储空间绑定一个域名,这个要求拥有自己的可解析并且已备案的国际域名,比如:itez.com.cn

添加域名时,还有一个需要注意的地方,就是”加速域名“后面的文本框中,不要输入根域名,而是要输入最终的子域名,比如:qn.files.itez.com.cn

等一会之后,就会创建一个CNAME,比如:xxx.qiniudns.com

这时登录自己域名的DNS解析管理页面,将”qn.files.itez.com.cn“使用CNAME方式指向到“xxx.qiniudns.com”即可。

 

这时就可以在空间管理中,上传文件到七牛云了,成功后,可以使用上面添加的子域名来访问上传的文件,例如:http://qn.files.itez.com.cn/myLogo.jpg

5、开发API

在JAVA中集成七牛云,添加引用:

<dependency>
    <groupId>com.qiniu</groupId>
    <artifactId>qiniu-java-sdk</artifactId>
    <version>7.2.10</version>
</dependency>

 

还需要以下相关信息:

1)AccessKey:在七牛云的“个人中心/密钥管理”中可以找到

2)SecretKey:同上

3)存储空间名称:就是在创建存储空间时填写的名称,比如:mybucket

4)存储区域名称:就是在创建存储空间时选择的存储区域,目前有四种:华东、华北、华南、北美

上手七牛云存储第3张

 

示例代码:

//构造一个带指定Zone对象的配置类
Configuration cfg = new Configuration(Zone.zone0());
//...其他参数参考类注释
UploadManager uploadManager = new UploadManager(cfg);
//...生成上传凭证,然后准备上传
String accessKey = "your access key";
String secretKey = "your secret key";
String bucket = "your bucket name";
//默认不指定key的情况下,以文件内容的hash值作为文件名
String key = null;
try {
byte[] uploadBytes = "hello qiniu cloud".getBytes("utf-8");
ByteArrayInputStream byteInputStream=new ByteArrayInputStream(uploadBytes);
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
try {
    Response response = uploadManager.put(byteInputStream,key,upToken,null, null);
    //解析上传成功的结果
    DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
    System.out.println(putRet.key);
    System.out.println(putRet.hash);
} catch (QiniuException ex) {
    Response r = ex.response;
    System.err.println(r.toString());
    try {
    System.err.println(r.bodyString());
    } catch (QiniuException ex2) {
    //ignore
    }
}
} catch (UnsupportedEncodingException ex) {
//ignore
}

更多API详细说明:https://developer.qiniu.com/kodo

免责声明:文章转载自《上手七牛云存储》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇GLTF模型查看器---优化器【转】Initialization failed for https://start.spring.io Please check URL, network and proxy settings.下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

redis实现接口限流

总结一下,之前的一个项目需要做限流:秒杀商品的接口。 其他一些博客有很多文章介绍用谷歌的插件:guaue(针对于单机的),如果是微服务的话推荐使用:senilxxxxx啥来的。具体有些忘记了。 这篇文章分享的内容是用redis+自定义注解+拦截器是实现限流(相对简单的一种) 废话不多说:首先reids的配置类:RedisConfig import com....

网络游戏的前后端通讯(一)

【旧博客转移 - 发布于2015年9月14日 22:25】   通讯是网络游戏的最重要部分之一,好的游戏通讯协议设计包括一下特点:包体积小、解析速度快、支持加解密等等,下面就简单说一下通讯协议的设计 1.游戏中常用的通讯协议以及数据格式 HTTP:     早期的SLG游戏一般会采用HTTP协议进行通讯,后端大多采用PHP,通讯格式用XML、JSON等字符...

补习系列(19)-springboot JPA + PostGreSQL

目录 SpringBoot 整合 PostGreSQL 一、PostGreSQL简介 二、关于 SpringDataJPA 三、整合 PostGreSQL A. 依赖包 B. 配置文件 C. 模型定义 D. 持久层 E. Service 层 四、高级操作 1. 自定义查询 2. 聚合 3. 视图 4. 连接池 5. 事务 小结 Spr...

C#多线程(一)

一、基本概念 1、进程 首先打开任务管理器,查看当前运行的进程: 从任务管理器里面可以看到当前所有正在运行的进程。那么究竟什么是进程呢? 进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源。一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程。线程是操作系统分配处理器时间的基本单元,在进程...

c#复制文件夹和文件

/// <summary> /// 拷贝文件夹 /// </summary> /// <param name="srcdir"></param> /// <param name="desdir"></param> public static void CopyDirectory(str...

unity 在移动平台中,文件操作路径详解

今天,这篇文章其实是个老生常谈的问题咯,在网上类似的文章也比比皆是,在此我只是做个详细总结方便大家能够更好、更快的掌握,当然,如有不足的地方 欢迎指正!!!相信大家在开发过程中,难免会保存一些文件在客户端进行本地化操作。如:配置文件,状态文件,Assetbundle文件等等...最近总有人问我:1.保存了一个xml在客户端,能读取里面的数据,可是不能修改,...