packageorg.zyu.utils;importjava.io.File;importjava.io.FileInputStream;importjava.io.IOException;importcom.google.gson.Gson;importcom.qiniu.common.QiniuException;importcom.qiniu.common.Zone;importcom.qiniu.http.Response;importcom.qiniu.storage.Configuration;importcom.qiniu.storage.UploadManager;importcom.qiniu.storage.model.DefaultPutRet;importcom.qiniu.util.Auth;importcom.qiniu.util.Base64;importcom.qiniu.util.StringMap;importcom.qiniu.util.UrlSafeBase64;importokhttp3.OkHttpClient;importokhttp3.Request;importokhttp3.RequestBody;public classQiniuCloudUtil {//设置需要操作的账号的AK和SK
private static final String ACCESS_KEY = "";private static final String SECRET_KEY = "";//要上传的空间
private static final String bucketname = "image";//密钥
private static final Auth auth =Auth.create(ACCESS_KEY, SECRET_KEY);//普通上传
public void upload(String filePath, String fileName) throwsIOException {
Configuration cfg= new Configuration(Zone.zone0()); //zong1() 代表华北地区
UploadManager uploadManager = newUploadManager(cfg);
Auth auth=Auth.create(ACCESS_KEY, SECRET_KEY);
String upToken=auth.uploadToken(bucketname);try{
Response response=uploadManager.put(filePath, fileName, upToken);//解析上传成功的结果
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
System.out.println(putRet.key);
System.out.println(putRet.hash);
}catch(QiniuException ex) {
Response r=ex.response;
System.err.println(r.toString());try{
System.err.println(r.bodyString());
}catch(QiniuException ex2) {//ignore
}
}
}//base64方式上传
public void put64image(String filePath, String fileName) throwsException {
FileInputStream fis= null;int l = (int) (newFile(filePath).length());byte[] src = new byte[l];
fis= new FileInputStream(newFile(filePath));
fis.read(src);
String file64= Base64.encodeToString(src, 0);
String url= "http://upload.qiniu.com/putb64/" + l + "/key/" +UrlSafeBase64.encodeToString(fileName);
RequestBody rb= RequestBody.create(null, file64);
Request request= new Request.Builder().url(url).addHeader("Content-Type", "application/octet-stream")
.addHeader("Authorization", "UpToken " +getUpToken()).post(rb).build();
System.out.println(request.headers());
OkHttpClient client= newOkHttpClient();
okhttp3.Response response=client.newCall(request).execute();
System.out.println(response);
}publicString getUpToken() {return auth.uploadToken(bucketname, null, 3600, new StringMap().put("insertOnly", 1));
}
}