七牛云存储,图片储存

概述

七牛云对象存储服务提供高可靠、强安全、低成本、可扩展的非结构化数据的存储服务。它提供简单的 Web  服务接口,可以通过七牛开发者平台或客户端存储和检索任意数量的数据,支持 “按使用付费” 模式,可以通过调用REST API 接口和 SDK开发工具包访问,下载协议采用HTTP 和 HTTPS 协议。方便程序员聚焦业务应用,而无需关注底层存储实现技术。

使用七牛云实现图片存储也比较简单只需要按照如下的步骤操作即可:

  1. 申请七牛云账号
  2. 创建空间 Bucket
  3. 请求获取图片
  4. 上传文件

账户申请

1) 进入七牛云官方网站注册开发者账户

七牛云是通过邮箱注册的,注册激活后就进行认证,认证后即可开通对象存储业务了

2)创建存储空间 Bucket

点击左侧左侧菜单  对象存储,一开始我们需要新建一个存储空间来存放我们的图片资源。点击新建存储空间,设置一些需要的内容,然后在左侧的存储空间列表我们就可以看到新加的空间了。

账号注册有些需要注意的点如下:

注册账号之后需要实名认证(个人/企业) 实名认证之后才可以创建存储空间

存储空间创建成功之后,找到个人中心获取accessKey,secretKey和存储空间名称就可以进行上传操作了

​​​​​​​入门案例

七牛对象存储将数据文件以资源的形式上传到空间中。可以创建一个或者多个空间,然后向每个空间中上传一个或  多个文件。通过获取已上传文件的地址进行文件的分享和下载

​​​​​​​搭建环境

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

文件上传


@Test
public void testUploadImage() {
Configuration cfg = new Configuration(Zone.zone0()); UploadManager uploadManager = new UploadManager(cfg);
String accessKey = "COuoDRVa7JLsuurzIvQSI_pEDceHDw3yGfJEmvwv"; String secretKey = "3RWpTjB5Jxg3QosUFr4mxbHXJ5JR2m6AHQqYsSlr";
String bucket = "test-bucket";
String localFilePath = "C:\\Users\\ThinkPad\\Desktop\\ihrm\\day9\\资源\\照片
\\001.png";
//默认不指定key的情况下,以文件内容的hash值作为文件名String key = "test";
Auth auth = Auth.create(accessKey, secretKey); String upToken = auth.uploadToken(bucket); try {
Response response = uploadManager.put(localFilePath, key, upToken);
//解析上传成功的结果
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
System.out.println(response.bodyString());
} catch (QiniuException ex) { Response r = ex.response; System.err.println(r.toString()); try {
System.err.println(r.bodyString());
} catch (QiniuException ex2) {
//ignore
}
}
}

断点续传


@Test
public void testUploadImage1() {
Configuration cfg = new Configuration(Zone.zone0());
String accessKey = "COuoDRVa7JLsuurzIvQSI_pEDceHDw3yGfJEmvwv"; String secretKey = "3RWpTjB5Jxg3QosUFr4mxbHXJ5JR2m6AHQqYsSlr"; String bucket = "test-bucket";
String key = "test";
Auth auth = Auth.create(accessKey, secretKey); String upToken = auth.uploadToken(bucket);String localFilePath = "C:\\Users\\ThinkPad\\Desktop\\ihrm\\day9\\资源
\\test.xlsx";String localTempDir = Paths.get(System.getProperty("java.io.tmpdir"), bucket).toString();
System.out.println(localTempDir);
try {
//设置断点续传文件进度保存目录
FileRecorder fileRecorder = new FileRecorder(localTempDir); UploadManager uploadManager = new UploadManager(cfg, fileRecorder); try {
Response response = uploadManager.put(localFilePath, key, upToken);
//解析上传成功的结果
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 (IOException ex) { ex.printStackTrace();
}

文件下载

对于公开空间,其访问的链接主要是将空间绑定的域名(可以是七牛空间的默认域名或者是绑定的自定义域名)拼

接上空间里面的文件名即可访问,标准情况下需要在拼接链接之前,将文件名进行符。

七牛云实现图片上传

1)创建文件上传的工具类

public class QiniuUploadUtil {private static final String accessKey = "COuoDRVa7JLsuurzIvQSI_pEDceHDw3yGfJEmvwv"; private static final String secretKey = "3RWpTjB5Jxg3QosUFr4mxbHXJ5JR2m6AHQqYsSlr"; private static final String bucket = "test-bucket";
private static final String prix = "http://pk9vj7em6.bkt.clouddn.com/"; private UploadManager manager;public QiniuUploadUtil() {
//初始化基本配置
Configuration cfg = new Configuration(Zone.zone0());
//创建上传管理器
manager = new UploadManager(cfg);
}public String upload(String imgName , byte [] bytes) { Auth auth = Auth.create(accessKey, secretKey);
//构造覆盖上传token
String upToken = auth.uploadToken(bucket,imgName); try {
Response response = manager.put(bytes, imgName, upToken); DefaultPutRet putRet = new Gson().fromJson(response.bodyString(),
DefaultPutRet.class);
//返回请求地址
return prix+putRet.key+"?t="+new Date().getTime();
} catch (Exception ex) { ex.printStackTrace();
}
return null;
}
}

2)使用七牛云实现图片上传

修改UserService方法

public String uploadImage(String id, MultipartFile file) throws Exception { User user = userDao.findById(id).get();
String key = new QiniuUploadUtil().upload(user.getId(), file.getBytes()); if(key != null) {
user.setStaffPhoto(key); userDao.save(user);
}
return key;
}

​​​​​​​

七牛云存储,图片储存相关推荐

  1. php七牛云储存图片,wordpress使用七牛云存储图片 | 厘米天空

    说到建站,多少会用到图片存储.免费的网络相册有很多,但是做站时能用到的必须得稳定快速和支持外链,本站一直在使用的一个存储就是七牛云.注册认证通过标准用户就可以得到10G的免费存储空间和免费10G的月流 ...

  2. php+laravel框架七牛云存储+图片审核+文字审核

    图片审核+文字审核使用的是 百度智能云-登录,且只需修改apikey和sercekey即可使用 1. composer 下载 composer require zgldh/qiniu-laravel- ...

  3. 手把手教你用七牛云存储图片

    环境说明:Django + Vue + Element-ui ​   在开发项目的时候,经常会用到上传图片的功能,如果把图片全都存放在项目路径下,会导致项目越来越臃肿,因此可以考虑把图片上传交给第三方 ...

  4. Spring Boot 使用七牛云存储图片并且使用自定义域名访问

    文章目录 前言 一.环境准备 1. 账号准备 注册七牛云账号并实名 创建对象存储空间 获取密钥 2. 创建spring boot 项目 pom.xml application.yml 二.上传本地文件 ...

  5. ueditor与七牛云存储结合

    2019独角兽企业重金招聘Python工程师标准>>> 摘要:  ueditor与七牛云存储结合,主要是表单api. ueditor上传图片到七牛云存储 ueditor结合七牛传图片 ...

  6. 苹果cms怎么同步图片到新浪或是七牛云存储

    做影视站视频资源多了以后图片是个很头疼的事,不但占用空间还影响网站响应速度,其实苹果cms官方给出的不错方案就是把图片同步到第三方云存储例如:新浪图床,七牛云存储,又拍云存储等. 具体操作步骤如下: ...

  7. 使用七牛云存储在网站中进行图片外链

    在CSDN中写博客,如果想在文章中插入一张图片,其实是非常简单的,只要从你本机进行图片选择,然后选择上传,图片就会上传到CSDN的服务器,到时候在文章显示的时候就会读取该图片.但是如果是在自己的搭建的 ...

  8. 在 Laravel 5 中集成七牛云存储实现云存储功能

    本扩展包基于https://github.com/qiniu/php-sdk开发,是七牛云储存 Laravel 5 Storage版,通过本扩展包可以在Laravel 5中集成七牛云存储功能. 1.安 ...

  9. 七牛云存储——许式伟

    2019独角兽企业重金招聘Python工程师标准>>> [eoe专访]七牛云储存创始人:揭开GO语言的神秘面纱  作者:  小白的白  来源: eoe  标签:  Go语言揭秘  ...

最新文章

  1. MySQL优化篇:show profile进行SQL分析
  2. 当网站遇到黑链时该如何进行处理?
  3. 经典C语言程序100例之七
  4. 帝国cms 打开打开转换表文件失败!
  5. ipv4到ipv6的过渡
  6. 【爬虫】毕设学习记录:python爬取静态网页(只爬取单页)
  7. 前端系统学习篇之HTML
  8. CUDA 禁用GPU之间的P2P通信功能
  9. 不是吧?!程序员月入10w,原因竟然是这个......
  10. JSP内置对象及其常用方法
  11. 腾达老的路由器W311R-V2 升级固件为NH326 -路由器中继
  12. Linux如何快速生成大文件
  13. 【python初学者日记】读入正整数n,判断它是质数还是合数,显示所有的因数(包括1和它自身)
  14. emmagee测试汇总
  15. CentOS 6 安装免费虚拟主机控制面板ZPanel
  16. Ubuntu安装“启动引导器”的设备选哪一项,选默认还是选/boot分区?
  17. 股市里赚钱最快的是什么股?有些股票的机会来了!
  18. 大数据之路—— 事实表设计
  19. 正则校验特殊字符,英文特殊字符和中文特殊字符
  20. 华为设备设置console密码

热门文章

  1. 邻接表的建立与spfa算法
  2. Visio画UML图基本操作及技巧解析
  3. 关于SSH使用的一些经验
  4. JavaScript:年月日時分秒設置
  5. 列表、表格与媒体元素
  6. Tomcat启动过程(一):从BootStrap到EndPonit
  7. python网络编程初级
  8. hdu5141 线段树
  9. 反射根据每一列的列名获取List T 中的列值
  10. Ubuntu 安装 配置 Mysql