不多说 直接贴代码,使用开源,回馈开源。这部分是来之于爱睦家商城(www.imujia.com)的部分源代码。七牛sdk不支持分页获取 资源信息,鄙视!!
插件:
QiniuPlugin.java
package com.imujia.server.plugin.qiniu;
import com.jfinal.plugin.IPlugin;
/**
*
* @author michael QQ&微信:198819880
* 爱睦家商城 www.imujia.com
*
*/
public class QiniuPlugin implements IPlugin {
private String propFile = "qiniu.properties";
public QiniuPlugin() {}
public QiniuPlugin(String propFile) {
this.propFile = propFile;
}
@Override
public boolean start() {
QiniuKit.init(new QiniuConfig(propFile));
return true;
}
@Override
public boolean stop() {
return true;
}
}
QiniuConfig.java
package com.imujia.server.plugin.qiniu;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import org.apache.log4j.Logger;
import org.json.JSONException;
import com.qiniu.api.auth.AuthException;
import com.qiniu.api.auth.digest.Mac;
import com.qiniu.api.rs.PutPolicy;
import com.qiniu.api.rs.RSClient;
import com.qiniu.api.rsf.RSFClient;
/**
*
* @author michael QQ&微信:198819880
* 爱睦家商城 www.imujia.com
*
*/
public class QiniuConfig {
private static final Logger logger = Logger.getLogger(QiniuConfig.class);
private String ak;
private String sk;
public QiniuConfig(String propertiesFile) {
Properties properties = new Properties();
InputStream is = QiniuConfig.class.getClassLoader().getResourceAsStream(propertiesFile);
try {
properties.load(is);
} catch (IOException e) {
logger.error("QiniuConfig", e);
}
ak = properties.getProperty("ak");
sk = properties.getProperty("sk");
}
public String getAk() {
return ak;
}
public void setAk(String ak) {
this.ak = ak;
}
public String getSk() {
return sk;
}
public void setSk(String sk) {
this.sk = sk;
}
public String getToken(String bucketName){
Mac mac = new Mac(ak, sk);
PutPolicy putPolicy = new PutPolicy(bucketName);
try {
return putPolicy.token(mac);
} catch (JSONException e) {
logger.error("qiniu config get token", e);
} catch (AuthException e) {
logger.error("qiniu config get token", e);
}
return null;
}
public RSFClient getRSFClient(){
Mac mac = new Mac(ak, sk);
RSFClient client = new RSFClient(mac);
return client;
}
public RSClient getRSClient(){
Mac mac = new Mac(ak, sk);
RSClient client = new RSClient(mac);
return client;
}
}
QiniuKit.java
package com.imujia.server.plugin.qiniu;
import java.io.File;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import com.qiniu.api.io.IoApi;
import com.qiniu.api.io.PutExtra;
import com.qiniu.api.io.PutRet;
import com.qiniu.api.rs.RSClient;
import com.qiniu.api.rsf.ListItem;
import com.qiniu.api.rsf.ListPrefixRet;
import com.qiniu.api.rsf.RSFClient;
/**
*
* @author michael QQ&微信:198819880
* 爱睦家商城 www.imujia.com
*
*/
public class QiniuKit {
static QiniuConfig mConfig;
static void init(QiniuConfig config){
mConfig = config;
}
public static PutRet put(String bucketName,String filePath,InputStream is){
String token = mConfig.getToken(bucketName);
return IoApi.Put(token, filePath, is, new PutExtra());
}
public static PutRet put(String bucketName,String filePath,File file){
String token = mConfig.getToken(bucketName);
return IoApi.putFile(token, filePath, file, new PutExtra());
}
public static List<ListItem> list(String bucketName) {
return list(bucketName,0);
}
public static List<ListItem> list(String bucketName,int count) {
return list(bucketName, "*", count);
}
public static List<ListItem> list(String bucketName,String directoryPath) {
return list(bucketName, directoryPath, 0);
}
public static List<ListItem> list(String bucketName,String directoryPath,int count) {
if(directoryPath == null)
{
directoryPath = "*";
}
if(count == 0)
{
count = Integer.MAX_VALUE;
}
RSFClient client = mConfig.getRSFClient();
ListPrefixRet list = client.listPrifix(bucketName, directoryPath, "", count);
if(list == null) return null;
List<ListItem> items = new ArrayList<ListItem>();
items.addAll(list.results);
return items ;
}
public static void remove(String bucketName, String filePath){
RSClient client = mConfig.getRSClient();
client.delete(bucketName, filePath);
}
}
需要到的jar包有:
httpclient-4.3.6.jar
httpcore-4.3.3.jar
httpmime-4.3.6.jar
qiniu-java-sdk-6.1.7.1.jar
没有jar包的联系我微信我发给你,maven的自己配置啦
使用方法:
1、src目录下添加配置文件qiniu.properties ,内容如下
ak = your qiniu ak
sk = your qiniu sk
configPlugin方法里添加QiniuPlugin
3、配置好后,如下使用:
QiniuKit.put(bucketName, filePathAndName, file);
海哥个人QQ&微信号:198819880 ,欢迎交流。