七牛云存储高速处理图片等文件
2016-03-02 17:04
429 查看
七牛云存储(www.qiniu.com)为中小型企业web站点提供了一套图片文档处理方案。
目的在于解决:企业服务器由于处理图片/文档等工作内容,而降低服务器的工作效率,节约开支,七牛云来存储企业上传的图片或者文档,使企业的Web应用快速响应用户的需求。
例如说,我上传(手动上传或代码上传)一张test.png的图片在七牛空间上
样式1:裁剪正中部分,等比缩小生成200x200缩略图
http://7xr5s7.com1.z0.glb.clouddn.com/test.png?imageView/1/w/200/h/200
样式2:宽度固定为200px,高度等比缩小,生成200x133缩略图:
http://7xr5s7.com1.z0.glb.clouddn.com/test.png?imageView2/2/w/200
样式3:高度固定为200px,宽度等比缩小,生成300x200缩略图:
http://7xr5s7.com1.z0.glb.clouddn.com/test.png?imageView2/2/h/200
七牛官网 图片处理配置,也可以定义自己样式,点击查看
1.七牛给我们提供了图片浏览的样式,能符合绝大多数人的需求,那如何把图片上传到七七牛空间,注册,登陆,创建空间,上传即可,下图
访问路径: url/images/test.png?+样式
url:七牛默认给你指定的免费域名,可以绑定自己的二级或三级域名.
例如:img.test.com
点击上传即可手动上传。
下面开始介绍如何实现Java代码上传
maven-pom.xml
2.JavaDemo代码实现上传
目的在于解决:企业服务器由于处理图片/文档等工作内容,而降低服务器的工作效率,节约开支,七牛云来存储企业上传的图片或者文档,使企业的Web应用快速响应用户的需求。
例如说,我上传(手动上传或代码上传)一张test.png的图片在七牛空间上
样式1:裁剪正中部分,等比缩小生成200x200缩略图
http://7xr5s7.com1.z0.glb.clouddn.com/test.png?imageView/1/w/200/h/200
样式2:宽度固定为200px,高度等比缩小,生成200x133缩略图:
http://7xr5s7.com1.z0.glb.clouddn.com/test.png?imageView2/2/w/200
样式3:高度固定为200px,宽度等比缩小,生成300x200缩略图:
http://7xr5s7.com1.z0.glb.clouddn.com/test.png?imageView2/2/h/200
七牛官网 图片处理配置,也可以定义自己样式,点击查看
1.七牛给我们提供了图片浏览的样式,能符合绝大多数人的需求,那如何把图片上传到七七牛空间,注册,登陆,创建空间,上传即可,下图
访问路径: url/images/test.png?+样式
url:七牛默认给你指定的免费域名,可以绑定自己的二级或三级域名.
例如:img.test.com
点击上传即可手动上传。
下面开始介绍如何实现Java代码上传
maven-pom.xml
<dependency> <groupId>com.qiniu</groupId> <artifactId>qiniu-java-sdk</artifactId> <version>7.0.0</version> </dependency>
2.JavaDemo代码实现上传
package com.bigluobo.service; /** * Created by Administrator on 2016/2/23. */ import com.qiniu.common.QiniuException; import com.qiniu.http.Response; import com.qiniu.storage.UploadManager; import com.qiniu.util.*; import java.io.File; import java.text.SimpleDateFormat; import java.util.*; public class UploadDemo { String ACCESS_KEY = "ACCESS_KEY"; String SECRET_KEY = "SECRET_KEY "; Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY); UploadManager uploadManager = new UploadManager(); private String calcFileName(){ SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmmss"); Date date=new Date(); String filename=sdf.format(date); return filename; } //获得随机值 private final String generateRandomString(int length) { String allChar = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; StringBuffer sb = new StringBuffer(); Random random = new Random(); for (int i = 0; i < length; i++) { sb.append(allChar.charAt(random.nextInt(allChar.length()))); } return sb.toString(); } // 覆盖上传 /*可以参考七牛的上传策略 http://developer.qiniu.com/docs/v6/api/reference/security/put-policy.html 指定上传的目标资源空间(Bucket)和资源键名(Key)。 有两种格式: ● <bucket>,表示允许用户上传文件到指定的 bucket。在这种格式下文件只能“新增”,若已存在同名资源则会失败。 ● <bucket>:<key>,表示只允许用户上传指定key的文件。在这种格式下文件默认允许“修改”,已存在同名资源则会被本次覆盖。如果希望只能上传指定key的文件,并且不允许修改,那么可以将下面的 insertOnly 属性值设为 1。*/ private String getUpToken(String filename){ return auth.uploadToken("images", filename, 3600, new StringMap().put("scope", "images") .put("insertOnly",1) .put("mimeLimit","image/*"));//限制只能上传图片 } public void upload() throws QiniuException { File file=new File("C:\\Users\\Administrator\\Desktop\\2.png"); try { String token=getUpToken(calcFileName()); Response ress=uploadManager.put(file, calcFileName(), token); System.out.println(ress.bodyString()); }catch (QiniuException e){ Response r=e.response; // 请求失败时简单状态信息 System.out.println(r.toString()); try { // 响应的文本信息 System.out.println(r.bodyString()); // System.out.println(r.); } catch (QiniuException e1) { //ignore } } } public static void main(String args[]) throws QiniuException{ new UploadDemo().upload(); } }
相关文章推荐
- PROCESS, SESSION and TRANSACTION parameter in Oracle 11g
- mysql client常见error总结
- 这是我的第一篇博客
- Jmeter特殊情况一:登录请求中密码加密的情况
- Ant之build.xml详解
- UE4材质初探(转载)
- iOS打开百度地图、高德地图导航
- Mybatis简介与原理
- socket阻塞与非阻塞,同步与异步、I/O模型
- android应用框架理解
- symfony
- shabang(#!)
- UIScrollView控件介绍
- Search Paths 之 Framework Search Paths、Library Search Paths、Header Search Paths
- C# 索引器
- Java并发编程:深入剖析ThreadLocal
- C# 退出应用程序办法
- 软件版本控制介绍
- WeakReference
- android 退出应用最优雅的方式