您现在的位置是:网站首页 > 代码编程 > JAVA开发JAVA开发
【原】分享一个简单的七牛云资源上传工具类
不忘初心 2019-11-15 围观() 评论() 点赞() 【JAVA开发】
简介:在前面的文章中,我已经疯狂吐槽了七牛云的目录结构,但还是用着挺舒服的,在这里提供一个非常简洁的七牛云资源上传工具类,是我自己用到的,随手写的,也不是很详细,只封装了它的上传和删除两个api,大家可以参考一下。
在前面的文章中,我已经疯狂吐槽了七牛云的目录结构,但还是用着挺舒服的,在这里提供一个非常简洁的七牛云资源上传工具类,是我自己用到的,随手写的,也不是很详细,只封装了它的上传和删除两个api,大家可以参考一下。
来,大家提前感受一下七牛云的目录。。。
目录直接强加在文件名上,骚得离谱!!!
一、引入官方指定的jar包
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>[7.2.0, 7.2.99]</version>
</dependency>
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>happy-dns-java</artifactId>
<version>0.1.6</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.14.2</version>
<scope>compile</scope>
</dependency>
二、封装api
package com.wolffy.util;
import com.qiniu.http.Response;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.Region;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;
import java.io.File;
import java.io.InputStream;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
/**
* 七牛上传工具类,https://developer.qiniu.com/kodo/sdk/1239/java
* Created by wolffy on 2019/09/16.
*/
@Setter
@Slf4j
public class QiniuUtil {
/**
* 密钥ID
*/
private String accessKey;
/**
* 加密钥匙
*/
private String secretKey;
/**
* 存储桶
*/
private String bucket;
/**
* 上传本地文件到七牛云
*
* @param filePath 文件路径
* @param key 文件名字,默认不指定key的情况下,以文件内容的hash值作为文件名
* @return DefaultPutRet
*/
public DefaultPutRet upload(String filePath, String key) {
log.info("path: {},key: {}", filePath, key);
try {
// 鉴权
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
// 自定义配置(指定分区,减少网络请求,加快请求速度)
Configuration cfg = new Configuration(Region.region2());
UploadManager uploadManager = new UploadManager(cfg);
// 上传
Response response = uploadManager.put(filePath, key, upToken);
//解析上传成功的结果
String result = response.bodyString();
log.info("上传七牛云完成:{}", result);
return JsonUtil.parse(result, DefaultPutRet.class);
} catch (Exception e) {
log.error("上传本地文件到七牛云失败:{}", ExceptionUtils.getStackTrace(e));
}
return null;
}
/**
* 上传本地文件到七牛云
*
* @param filePath 文件路径
* @return DefaultPutRet
*/
public DefaultPutRet upload(String filePath) {
return upload(filePath, null);
}
/**
* 上传本地文件到七牛云,IO流方式
*
* @param inputStream 输入流
* @param key 上传文件保存的文件名
* @return DefaultPutRet
*/
public DefaultPutRet upload(InputStream inputStream, String key) {
try {
// 鉴权
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
// 自定义配置(指定分区,减少网络请求,加快请求速度)
Configuration cfg = new Configuration(Region.region2());
UploadManager uploadManager = new UploadManager(cfg);
// 上传
Response response = uploadManager.put(inputStream, key, upToken, null, null);
//解析上传成功的结果
String result = response.bodyString();
log.info("上传七牛云完成:{}", result);
return JsonUtil.parse(result, DefaultPutRet.class);
} catch (Exception e) {
log.error("上传文件IO流到七牛云失败:{}", ExceptionUtils.getStackTrace(e));
}
return null;
}
/**
* 上传本地文件到七牛云,IO流方式
*
* @param inputStream 输入流
* @return DefaultPutRet
*/
public DefaultPutRet upload(InputStream inputStream) {
return upload(inputStream, null);
}
/**
* 删除七牛云上的文件
*
* @param key 文件名字
*/
public void delete(String key) {
try {
Auth auth = Auth.create(accessKey, secretKey);
Configuration cfg = new Configuration(Region.region2());
BucketManager bucketManager = new BucketManager(auth, cfg);
bucketManager.delete(bucket, key);
} catch (Exception e) {
log.error("删除七牛云文件失败:{}", ExceptionUtils.getStackTrace(e));
}
}
public static void main(String[] args) {
QiniuUtil qiniuUtil = new QiniuUtil();
qiniuUtil.setAccessKey("在七牛云平台上拿到的AccessKey");
qiniuUtil.setSecretKey("在七牛云平台上拿到的SecretKey");
qiniuUtil.setBucket("jwcz");
String path, key;
DefaultPutRet ret;
File file2 = new File("C:\\Users\\SongFei\\Desktop\\wlkk\\headimg");
for (File file : file2.listFiles()) {
// 这里注意,由于七牛云没有目录的概念,所以这里上传后的文件名就是:"avatar/" + file.getName()
qiniuUtil.upload(file.getAbsolutePath(), "avatar/" + file.getName());
System.out.println("上传[" + file.getName() + "]完成");
}
}
}
看完文章,有任何疑问,请加入群聊一起交流!!!
很赞哦! ()
相关文章
- 利用qshell批量导出七牛云中存储的图片和资源
- IntelliJ IDEA 2024.2发布之后强推新UI,如何恢复老的经典UI界面
- Uninstall hasn't detected folder of intelli] lDEA installation. Probablyuninstall.exe was moved from the installation folder.
- 公众号CPS变现新宠:微赚淘客查券返利机器人,开启智能省钱赚钱新时代
- 高返利优惠券公众号推荐
- 返利公众号可信吗安全吗?返利机器人哪个佣金高?
- 唯品会购物返利公众号大揭秘:哪些真正好用的返利公众号?
- 饿了么优惠券免费领取:哪些公众号值得推荐?
- 哪些有用可靠的微信公众号能领淘宝优惠券?
- 微信返利最高的微信号推荐——让你的购物更加实惠!
标签云
猜你喜欢
- IntelliJ IDEA 2019.2已经可以利用补丁永久破解激活了
- IntelliJ IDEA 2019.3利用补丁永久破解激活教程
- IntelliJ IDEA高版本最灵活的永久破解激活方法(含插件激活,时长你说了算)
- Jetbrains全家桶基于ja-netfilter的最新破解激活详细图文教程
- IntelliJ IDEA 2022.1永久破解激活教程(亲测可用,持续更新)
- 分享几个正版 IntelliJ IDEA 激活码(破解码、注册码),亲测可用,持续更新
- ja-netfilter到底需不需要mymap,2021.3.2版本激活失效?
- 如何激活idea2022.1及以上版本中的插件(亲测可用)
- 【史上最全】IntelliJ IDEA最新2022.1版本安装和激活视频教学(含插件)
- IntelliJ IDEA 2022.2 版本最新2099年永久激活方法,亲测可用,也可以开启新UI了。
站点信息
- 网站程序:spring + freemarker
- 主题模板:《今夕何夕》
- 文章统计:篇文章
- 标签管理:标签云
- 微信公众号:扫描二维码,关注我们