使用七牛云存储图片案例
作者:陈惠,叩丁狼高级讲师。原创文章,转载请注明出处。
现在很多的网站都会用到大量的图片,而图片是网页传输中占主要的数据量,也是影响网站性能的因素之一。因此很多网站都会将图片存储从网站中分离出来,另外搭建一个或多个服务器来存储图片,而网页上的图片都用一个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
使用七牛云存储图片案例相关推荐
- 七牛云存储,图片储存
七牛云存储,图片储存 概述 七牛云对象存储服务提供高可靠.强安全.低成本.可扩展的非结构化数据的存储服务.它提供简单的 Web 服务接口,可以通过七牛开发者平台或客户端存储和检索任意数量的数据,支持 ...
- php七牛云储存图片,wordpress使用七牛云存储图片 | 厘米天空
说到建站,多少会用到图片存储.免费的网络相册有很多,但是做站时能用到的必须得稳定快速和支持外链,本站一直在使用的一个存储就是七牛云.注册认证通过标准用户就可以得到10G的免费存储空间和免费10G的月流 ...
- php+laravel框架七牛云存储+图片审核+文字审核
图片审核+文字审核使用的是 百度智能云-登录,且只需修改apikey和sercekey即可使用 1. composer 下载 composer require zgldh/qiniu-laravel- ...
- 手把手教你用七牛云存储图片
环境说明:Django + Vue + Element-ui 在开发项目的时候,经常会用到上传图片的功能,如果把图片全都存放在项目路径下,会导致项目越来越臃肿,因此可以考虑把图片上传交给第三方 ...
- Spring Boot 使用七牛云存储图片并且使用自定义域名访问
文章目录 前言 一.环境准备 1. 账号准备 注册七牛云账号并实名 创建对象存储空间 获取密钥 2. 创建spring boot 项目 pom.xml application.yml 二.上传本地文件 ...
- ueditor与七牛云存储结合
2019独角兽企业重金招聘Python工程师标准>>> 摘要: ueditor与七牛云存储结合,主要是表单api. ueditor上传图片到七牛云存储 ueditor结合七牛传图片 ...
- 苹果cms怎么同步图片到新浪或是七牛云存储
做影视站视频资源多了以后图片是个很头疼的事,不但占用空间还影响网站响应速度,其实苹果cms官方给出的不错方案就是把图片同步到第三方云存储例如:新浪图床,七牛云存储,又拍云存储等. 具体操作步骤如下: ...
- 使用七牛云存储在网站中进行图片外链
在CSDN中写博客,如果想在文章中插入一张图片,其实是非常简单的,只要从你本机进行图片选择,然后选择上传,图片就会上传到CSDN的服务器,到时候在文章显示的时候就会读取该图片.但是如果是在自己的搭建的 ...
- 图片存储方案-七牛云存储
1.引语 在实际开发中,我们会有很多处理不同功能的服务器.例如: 应用服务器:负责部署我们的应用 数据库服务器:运行我们的数据库 文件服务器:负责存储用户上传文件的服务器 分服务器处理的目的是让服务器 ...
- 七牛云删除图片接口_图片基本处理(imageView2)
imageView2 提供简单快捷的图片格式转换.缩略.剪裁功能.只需要填写几个参数,即可对图片进行缩略操作,生成各种缩略图.imageView2接口可支持处理的原图片格式有psd.jpeg.png. ...
最新文章
- 强强联手!这所C9高校与西湖大学签约
- 用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。
- 一、【绪论】数据结构的基本概念
- Python调Windows的资源管理器打开指定目录
- java根据wait,notify,synchronize关键字自定义队列
- C#使用mybatis学习笔记
- 解决ajax跨域的方法原理详解之Cors方法
- 微信网页video播放视频不全屏的解决方法
- MaxMall开源微信分销系统
- ZOJ 3204 Connect them
- 车载软件FrameWork集成字体(鸿蒙字体)
- 如何快速搭建一个简单图像搜索引擎
- Spring Cloud微服务之Feign——声明式服务间调用
- vulnhub之Hacker_Kid-v1.0.1
- OSChina 周五乱弹 —— 性感海星在线翘臀
- 一文理解Flink 水位线(Flink Watermark)
- 我的计算机学习体系计划
- 手游侠岚服务端+客户端源码+资源说明+启动脚本
- 稳定wow60级服务器,魔兽世界怀旧服:永久60级服务器可能人多还是人少?玩家吵开了!...
- rime输入法初识----sample目录插件与样例分析(二)