环境搭建基于spring 环境下
首先导入依赖
引入qiniuyun.properties 在spring
<!--文件上传-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<!--七牛云-->
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>[7.2.0, 7.2.99]</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
配置上传文件 spring-mvc.xml
<!-- id 的值是固定的-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置上传文件的最大尺寸为 5MB -->
<property name="maxUploadSize">
<value>5242880</value>
</property>
</bean>
以及加载qiniuyun.properties文件所需要xml
<!--加载 七牛云 properties-->
<context:property-placeholder location="classpath:qiniu.properties"></context:property-placeholder>
qiniu.properties配置文件
qiniu.accessKey=M1lFUDcdSppLe9nKIqSdB4xSu6w9szFt3Dpvz8Gn
qiniu.secretKey=ftlOxjBYAOe1xX4gWUfIgVwun6QUdj2wbNM6Wx48
qiniu.bucket=saas1121
qiniu.rtValue=q13pvmsvo.bkt.clouddn.com
工具类 //返回该照片的在云端的唯一id
package com.czh.web.qiniuyun;
import com.google.gson.Gson;
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.util.UUID;
@Component
public class FileUploadUtil {
@Value("${qiniu.accessKey}")
private String accessKey ;
@Value("${qiniu.secretKey}")
private String secretKey;
@Value("${qiniu.bucket}")
private String bucket;
@Value("${qiniu.rtValue}")
private String rtValue;
/**
* 将图片上传到七牛云服务
* 1.更新用户图片信息(用户id=key)
* 2.访问图片
* 存储空间分配的临时域名(免费用户有效期一个月):http://pkbivgfrm.bkt.clouddn.com+上传的文件名
* 3.对于更新之后访问图片,防止缓存
* 更新图片之后:访问的时候,再请求连接添加上时间戳
*
*/
public String upload(MultipartFile multipartFile)throws Exception{
String img = "";
try {
//取出原始文件名
String fileName = multipartFile.getOriginalFilename();
//随机化文件名
String uuid = UUID.randomUUID().toString().replace("-","").toUpperCase();
fileName = uuid+"_"+fileName;
//构造一个带指定Zone对象的配置类
//指定上传文件服务器地址:
Configuration cfg = new Configuration(Zone.zone0());
//...其他参数参考类注释
//上传管理器
UploadManager uploadManager = new UploadManager(cfg);
//身份认证
Auth auth = Auth.create(accessKey, secretKey);
//指定覆盖上传
String upToken = auth.uploadToken(bucket,fileName);
//上传
Response response = uploadManager.put(multipartFile.getBytes(), fileName, upToken);
//解析上传成功的结果
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
img = "http://"+rtValue+"/"+fileName;
} catch (QiniuException ex) {
System.err.println(ex.getMessage());
Response r = ex.response;
System.err.println(r.toString());
try {
System.err.println(r.bodyString());
} catch (QiniuException ex2) {
}
}
return img;
}
}