作者:陈惠,叩丁狼高级讲师。原创文章,转载请注明出处。 

现在很多的网站都会用到大量的图片,而图片是网页传输中占主要的数据量,也是影响网站性能的因素之一。因此很多网站都会将图片存储从网站中分离出来,另外搭建一个或多个服务器来存储图片,而网页上的图片都用一个URL地址来指向这些服务器上的图片的地址,这样的话网站的性能就明显提高了。图片服务器可以自己搭建,或者使用网上的云服务器,比如阿里也有,本文选用的是七牛云的对象存储来实现。在七牛云上个人注册并且实名认证成功后可免费使用储存空间10GB,用于测试是完全足够了。

使用步骤:

1. 准备工作
注册后进行实名认证,通过后可以获得AccessKey以及SecretKey,主要是后面调用接口的时候需要使用。

2.创建存储空间
点击”管理控制台”——> “对象存储”——>”新建存储空间”,并且填入对应的信息。

如果你希望用户在任何情况下都可以直接访问资源,可以直接将空间设为公开。

3.在项目中引入七牛云提供的JAVA-SDK
注意:此 SDK 适用于 Java 7 及以上版本

使用maven的方式引入:

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

这里的version指定了一个版本范围,每次更新pom.xml的时候会尝试去下载7.2.x版本中的最新版本,不过你也可以手动指定一个固定的版本。

4.使用SDK提供的图片上传工具
七牛文件上传分为客户端上传(主要是指网页端和移动端等面向终端用户的场景)和服务端上传两种场景,具体可以参考官方文档 ,文中使用的是服务端上传的方式。

结合SpringMVC来上传图片到七牛云:

/*** 文件上传工具*/
public class UploadUtil {/*** 上传到七牛云* @param file 上传的图片* @return 七牛云中图片的名字*/public static String uploadQiniu(MultipartFile file) {//构造一个带指定Zone对象的配置类Configuration cfg = new Configuration(Zone.zone2());//...其他参数参考类注释UploadManager uploadManager = new UploadManager(cfg);//...生成上传凭证,然后准备上传String accessKey = "你的accessKey";String secretKey = "你的secretKey";//存储空间的名字String bucket = "wolfcode";//默认不指定key的情况下,以文件内容的hash值作为文件名String key = null;Auth auth = Auth.create(accessKey, secretKey);String upToken = auth.uploadToken(bucket);try {Response response = uploadManager.put(file.getBytes(), key, upToken);//解析上传成功的结果DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);return putRet.key;} catch (QiniuException ex) {Response r = ex.response;System.err.println(r.toString());try {System.err.println(r.bodyString());} catch (QiniuException ex2) {//ignore}} catch (Exception ex) {ex.printStackTrace();}return null;}
}

备注:
1 七牛存储支持空间创建在不同的机房,Zone对象是指定具体哪个机房

2 默认不指定key的情况下,以文件内容的hash值作为文件名,使用hash的好处还可以去除重复图片,重复上传同一张图片,在七牛云中只会占用一个图片的空间。

3 上传成功后的返回的DefaultPutRet对象,里面包含图片的hash值,和图片的key值其实就是文件名。

最后一步,就是访问图片了,打开对象存储空间,可以看到七牛云分配的外链域名,以及上传过的图片,把域名和图片的key值拼接在一起,就是图片的URL了,如:http://pgd3zoxnk.bkt.clouddn.com/FgaeuBs1QwDZUd9UO4betMtgZOMs

使用七牛云存储图片案例相关推荐

  1. 七牛云存储,图片储存

    七牛云存储,图片储存 概述 七牛云对象存储服务提供高可靠.强安全.低成本.可扩展的非结构化数据的存储服务.它提供简单的 Web  服务接口,可以通过七牛开发者平台或客户端存储和检索任意数量的数据,支持 ...

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

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

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

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

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

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

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

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

  6. ueditor与七牛云存储结合

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

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

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

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

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

  9. 图片存储方案-七牛云存储

    1.引语 在实际开发中,我们会有很多处理不同功能的服务器.例如: 应用服务器:负责部署我们的应用 数据库服务器:运行我们的数据库 文件服务器:负责存储用户上传文件的服务器 分服务器处理的目的是让服务器 ...

  10. 七牛云删除图片接口_图片基本处理(imageView2)

    imageView2 提供简单快捷的图片格式转换.缩略.剪裁功能.只需要填写几个参数,即可对图片进行缩略操作,生成各种缩略图.imageView2接口可支持处理的原图片格式有psd.jpeg.png. ...

最新文章

  1. 强强联手!这所C9高校与西湖大学签约
  2. 用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。
  3. 一、【绪论】数据结构的基本概念
  4. Python调Windows的资源管理器打开指定目录
  5. java根据wait,notify,synchronize关键字自定义队列
  6. C#使用mybatis学习笔记
  7. 解决ajax跨域的方法原理详解之Cors方法
  8. 微信网页video播放视频不全屏的解决方法
  9. MaxMall开源微信分销系统
  10. ZOJ 3204 Connect them
  11. 车载软件FrameWork集成字体(鸿蒙字体)
  12. 如何快速搭建一个简单图像搜索引擎
  13. Spring Cloud微服务之Feign——声明式服务间调用
  14. vulnhub之Hacker_Kid-v1.0.1
  15. OSChina 周五乱弹 —— 性感海星在线翘臀
  16. 一文理解Flink 水位线(Flink Watermark)
  17. 我的计算机学习体系计划
  18. 手游侠岚服务端+客户端源码+资源说明+启动脚本
  19. 稳定wow60级服务器,魔兽世界怀旧服:永久60级服务器可能人多还是人少?玩家吵开了!...
  20. rime输入法初识----sample目录插件与样例分析(二)

热门文章

  1. 微步在线安全事件分析:全球数亿主机被FireBall攻陷
  2. word论文各类对齐终极解决方法——制表符
  3. python多线程爬堆糖的图片
  4. Priest and Devil
  5. 2016年东莞市小学生信息学竞赛试题 17倍
  6. 【Unity】射击小游戏
  7. 【12306抢票神器】抢票啦—请收下这份2022元旦春节抢票攻略
  8. Linux下文件属性详解
  9. MySQL数据库的完美卸载
  10. 从自己的角度比较《天书夜读》和《寒江独钓》