原文摘自:https://www.jiagou1216.com
七牛云对象存储的使用方法参考:https://www.jiagou1216.com/blog/devops/339.html
第一步:新建springboot项目,引入jar包,其中hutool-all是工具类,用来写文件下载,可以随意更换。
cn.hutool
hutool-all
5.2.0
com.qiniu
qiniu-java-sdk
[7.2.0, 7.2.99]
com.squareup.okhttp3
okhttp
3.14.2
compile
com.google.code.gson
gson
2.8.5
compile
com.qiniu
happy-dns-java
0.1.6
test
junit
junit
4.12
test
第二步:登录七牛云,在秘钥管理中找到accessKey和secretKey
第三步:写测试类,代码结构如下:
packagecom.example.demo;importcn.hutool.core.date.DateUnit;importcn.hutool.core.date.DateUtil;importcn.hutool.core.io.FileUtil;importcn.hutool.core.io.StreamProgress;importcn.hutool.core.lang.Console;importcn.hutool.http.HttpUtil;importcom.qiniu.common.Zone;importcom.qiniu.storage.BucketManager;importcom.qiniu.storage.Configuration;importcom.qiniu.storage.Region;importcom.qiniu.storage.model.FileInfo;importcom.qiniu.util.Auth;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importjava.io.UnsupportedEncodingException;importjava.net.URLEncoder;/*** 架构师小跟班 www.jiagou1216.com
* 官方API说明:https://developer.qiniu.com/kodo/sdk/1239/java#1*/@SpringBootApplicationpublic classDemoApplication {//七牛云秘钥AK
static String accessKey = "xxxxxxxxxxxxxxxxxxxxxxx";//七牛云秘钥SK
static String secretKey = "xxxxxxxxxxxxxxxxxxxxxxx";//七牛云空间名称
static String bucket = "xxxxxx";public static voidmain(String[] args) {
SpringApplication.run(DemoApplication.class, args);
list();
}/*** 列表*/
public static voidlist() {//构造一个带指定Zone对象的配置类
Configuration cfg = newConfiguration(Region.region0());//...其他参数参考类注释
Auth auth =Auth.create(accessKey, secretKey);
BucketManager bucketManager= newBucketManager(auth, cfg);//文件名前缀
String prefix = "";//每次迭代的长度限制,最大1000,推荐值 1000
int limit = 10;//指定目录分隔符,列出所有公共前缀(模拟列出目录效果)。缺省值为空字符串
String delimiter = "";//列举空间文件列表
BucketManager.FileListIterator fileListIterator =bucketManager.createFileListIterator(bucket, prefix, limit, delimiter);while(fileListIterator.hasNext()) {//处理获取的file list结果
FileInfo[] items =fileListIterator.next();for(FileInfo item : items) {
download(item.key);//下载
}
}
}/*** 下载*/
public static voiddownload(String fileName) {
String domainOfBucket= "cdn.jiagou1216.com";
String encodedFileName= null;try{
encodedFileName= URLEncoder.encode(fileName, "utf-8").replace("+", "%20");
}catch(UnsupportedEncodingException e) {
e.printStackTrace();
}
String publicUrl= String.format("%s/%s", domainOfBucket, encodedFileName);
Auth auth=Auth.create(accessKey, secretKey);long expireInSeconds = 3600;//1小时,可以自定义链接过期时间
String finalUrl =auth.privateDownloadUrl(publicUrl, expireInSeconds);
System.out.println(finalUrl);
HttpUtil.downloadFile(finalUrl, FileUtil.file("d://七牛云"));
}
}