zone:每个大区对应一个zone对象,对应关系如下:
* 华东 Zone.zone0() * 华北 Zone.zone1() * 华南 Zone.zone2() * 北美 Zone.zoneNa0()
upToken:getUploadCredential()生成的凭证
localFilePath:需要上传的文件本地路径,如果是Linux环境,使用类似"/home/qiniu/test.png";如果是Windows环境,使用类似"D:\\qiniu\\test.png",注意:字符串中不要有空格,笔者就被这个坑过。

返回值:DefaultPutRet对象,其中包含了已经上传文件的新文件名和文件hash值。
写个main()测试一下上边的上传方法:
public static void main(String[] args) {
fileUpload(Zone.zone0(),CredentialsManager.getUploadCredential(),"D:\\qiniu\\test.jpg");
} 执行,打开七牛控制管理台->对象存储->你创建的空间名->内容管理,看看你的文件是不是传上去了!!

是不是很奇怪,我都还没有提供url,怎么就传上去了呢。没错了,七牛的SDK通过全局唯一的Bucket 直接拼接出了你空间对应的url,所以你只需要提供ak、sk和Bucket就可以上传文件了。
但是在实际开发中,这些只能上传文件还远远不够,下面我们介绍七牛 SDK的其他功能
生成文件下载链接。仅仅把文件上传上去当然不行了,我们还要想办法访问它,下边分别介绍公有空间和私有空间生成文件下载链接的方法。废话不多说,直接上代码:
private static String accessKey = "你的AK";
private static String secretKey = "你的SK";
private static String bucket = "你的存储空间名";
public static Auth getAuth() {
return Auth.create(accessKey, secretKey);
}
/**
* 公有空间返回文件URL
* @param fileName
* @param domainOfBucket
* @return
*/
public static String publicFile(String fileName,String domainOfBucket) {
String encodedFileName=null;
try {
encodedFileName = URLEncoder.encode(fileName, "utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String finalUrl = String.format("%s/%s", domainOfBucket, encodedFileName);
System.out.println(finalUrl);
return finalUrl;
}
/**
* 私有空间返回文件URL
* @param auth
* @param fileName
* @param domainOfBucket
* @param expireInSeconds
* @return
*/
public static String privateFile(Auth auth,String fileName,String domainOfBucket,long expireInSeconds) {
String encodedFileName=null;
try {
encodedFileName = URLEncoder.encode(fileName, "utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String publicUrl = String.format("%s/%s", domainOfBucket, encodedFileName);
String finalUrl = auth.privateDownloadUrl(publicUrl, expireInSeconds);
System.out.println(finalUrl);
return finalUrl;
}
public static void main(String[] args) {
publicFile("文件名","你的domainOfBucket");
//privateFile(CredentialsManager.getAuth(),"文件名","你的domainOfBucket",3600);
} 说一下参数:fileName:没错,就是上传文件时,返回的DefaultPutRet对象中的key属性,也就是七牛控制管理台中看到的文件名。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-54170-3.html
好美