您的位置:首页 > 其它

七牛云存储高速处理图片等文件

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

<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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: