七牛云存储服务器,上传本地附件操作方法:
一、引入七牛云jar包
maven项目需要引入qiniu-java-sdk的jar包
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>7.2.1</version>
</dependency>
注:非maven项目可以通过互联网公共maven仓库下载jar包。
三、调用工具方法uploadFile上传文件
代码如下:
package com.test.util;
import java.io.File;
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.util.Auth;
/**
* @ClassName: QiniuUtil
* @Description:
* @author: tianpengw
* @date 2018年4月24日 下午4:28:31
*
*/
public class QiniuUtil {
/**
* 设置七牛云存储区域
* Zone.zone0() :华东
* Zone.zone1() :华北
* Zone.zone2() :华南
*/
private static Configuration cfg = new Configuration(Zone.zone0());
/**
* 上传控制器
*/
private final static UploadManager uploadManager = new UploadManager(cfg);
/**
* 七牛云外链地址
*/
private static String qiniu_outside_url = "address";
/**
* 七牛云账号对应的密钥
*/
private static final Auth qiniu_auth = Auth.create("accessKey","secretKey");
/**
* 七牛云上传空间名
*/
private static final String qiniu_bucket = "bucketName";
/**
*
* @Description: 简单上传,使用默认策略
* @author: tianpengw
* @return
*/
public static String getUpTokenDefault(){
return qiniu_auth.uploadToken(qiniu_bucket);
}
/**
*
* @Description: 覆盖上传
* @author: tianpengw
* @param key
* @return
*/
public static String getUpTokenCover(String key){
return qiniu_auth.uploadToken(qiniu_bucket, key);
}
/**
*
* @Description: 上传磁盘文件
* @author: tianpengw
* @param fileFullName 文件全路径
* @param keyPath 上传文件的路径
* @param upToken 七牛云上传token
*
*/
private static String qiniuUploadFile(String fileFullName, String keyPath, String upToken){
try {
if(null != fileFullName && !"".equals(fileFullName) && new File(fileFullName).exists()){
if(null == keyPath || "".equals(keyPath)){
keyPath = "file/";
}
String fileName = fileFullName.substring(fileFullName.lastIndexOf("/")+1);
String key = keyPath + System.currentTimeMillis()+"_"+fileName;
boolean result =upload(fileFullName, key, upToken);
if(result){
return qiniu_outside_url + key;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
*
* @Description: 上传磁盘中的文件
* @author: tianpengw
* @param filePath
* @param key
* @param upToken
* @return
*/
private static boolean upload(String filePath, String key, String upToken){
try {
Response res = uploadManager.put(filePath, key, upToken);
System.out.println(res.bodyString());
if(res.isOK()){
return true;
}
} catch (QiniuException e) {
System.out.println("上传磁盘文件异常!");
}
return false;
}
/**
*
* @Description: 上传文件
* @author: tianpengw
* @param fileFullName
* @param keyPath
* @param keyName 如果覆盖上传此值不为空,如果为空默认上传
* @return
*/
public static String uploadFile(String fileFullName, String keyPath, String keyName){
if(null != keyName && !"".equals(keyName)){
return qiniuUploadFile(fileFullName, keyPath, getUpTokenCover(keyName));
}else{
return qiniuUploadFile(fileFullName, keyPath, getUpTokenDefault());
}
}
public static void main(String[] args) {
System.out.println(uploadFile("d:/test001.doc",null,null));
}
}
1.设置存储区域为你申请的空间的区域;
2.填入你申请的accessKey和secretKey;
3.修改为你申请的空间名称
这样你就可以上传图片了
最后说明下:
fileFullName:是你本地文件的全路径
keyPath:这是你上传后文件存储的地址
如你的七牛云外链域名是 http://qny.qiniutest.com/,你要传一个本地文件:d:/test001.doc,你并没有送keyPath,通过工具上传后你的文件访问地址是:
http://qny.qiniutest.com/file/test001.doc,当然代码是死的,人是活的,你看根据自己需求修改此处默认路径 或者干脆不设置这个路径,不过建议你加上这个路径,在以后你查下不同功能模块的附件时可以作为区分,如果图片都放在img/下,附件都放在file/下
keyName :将要覆盖的文件名称,比如我要覆盖http://qny.qiniutest.com/file/test001.doc这个文件我的key 就写成file/test001.doc
到此七牛云磁盘上传图片的方法介绍完毕