要求:

1. java1.8以上

2. Maven: 这里的version指定了一个版本范围,每次更新pom.xml的时候会尝试去下载7.5.x版本中的最新版本,你可以手动指定一个固定的版本。

<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>[7.5.0, 7.5.99]</version>
</dependency>

3. Java SDK依赖的第三方库及其版本如下:

<dependencies>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.14.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>happy-dns-java</artifactId>
<version>0.1.6</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>

其中关于Region对象和机房的关系如下:

官网参考:

https://developer.qiniu.com/kodo/1239/java#1

七牛云工具类

import com.google.gson.Gson;
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream; /**
* 七牛云工具类
*/
public class QiniuUtils {
//设置好账号的ACCESS_KEY和SECRET_KEY
public static String accessKey = "your access_key";//这两个登录七牛 密匙管理页面可以找到
public static String secretKey = "your secret_key";
//要上传的空间名
public static String bucket = "carefree-project"; public static void upload2Qiniu(String filePath,String fileName){
//构造一个带指定Zone对象的配置类(区域需根据 自己七牛云的对象存储区域选择)
Configuration cfg = new Configuration(Zone.zone2());//Zone.zone2() 表示华南区域
UploadManager uploadManager = new UploadManager(cfg);
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
try {
Response response = uploadManager.put(filePath, fileName, upToken);
//解析上传成功的结果
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
} catch (QiniuException ex) {
Response r = ex.response;
try {
System.err.println(r.bodyString());
} catch (QiniuException ex2) {
//ignore
}
}
} //上传文件
public static void upload2Qiniu(byte[] bytes, String fileName){
//构造一个带指定Zone对象的配置类
Configuration cfg = new Configuration(Zone.zone2());
//...其他参数参考类注释
UploadManager uploadManager = new UploadManager(cfg); //默认不指定key的情况下,以文件内容的hash值作为文件名
String key = fileName;
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
try {
Response response = uploadManager.put(bytes, key, 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
}
}
} //删除文件
public static void deleteFileFromQiniu(String fileName){
//构造一个带指定Zone对象的配置类
Configuration cfg = new Configuration(Zone.zone2());
String key = fileName;
Auth auth = Auth.create(accessKey, secretKey);
BucketManager bucketManager = new BucketManager(auth, cfg);
try {
bucketManager.delete(bucket, key);
} catch (QiniuException ex) {
//如果遇到异常,说明删除失败
System.err.println(ex.code());
System.err.println(ex.response.toString());
}
}
}

最新文章

  1. Spring Boot项目的打包和部署
  2. ECSHOP用户协议字体颜色更改
  3. windows 命令修改IP
  4. Linux下发包处理
  5. 提供给开发者 10 款最好的 Python IDE
  6. SPRING IN ACTION 第4版笔记-第七章Advanced Spring MVC-006- 如何保持重定向的request数据(用model、占位符、RedirectAttributes、model.addFlashAttribute(&quot;spitter&quot;, spitter);)
  7. Android Fragment 生命周期
  8. FusionCharts(v3.6.0)使用(1)
  9. Qt5该插件机制(4)--QtMeta信息窗口小部件metaData
  10. 关于web变量配置问题
  11. Linux系统中常用操作命令
  12. nodejs的package.json依赖dependencies中 ^ 和 ~ 的区别
  13. Java几种常见的设计模式
  14. TP连接数据库报错:SQLSTATE[HY000] [2002] No such file or directory
  15. Eclipse版本列表
  16. OneinStack 安装
  17. GoF--服务定位器模式
  18. 机器学习:数据预处理之独热编码(One-Hot)
  19. hadoop集群的搭建(分布式安装)
  20. WebGL编程指南案例解析之绘制一个点

热门文章

  1. [翻译]正式宣布 Visual Studio 2022
  2. Manjaro 蓝牙连接问题
  3. Redis持久化——AOF日志
  4. Jenkins 自动触发执行的配置
  5. 0702-计算机视觉工具包torchvision
  6. 《疯狂Kotlin讲义》读书笔记6——函数和Lambda表达式
  7. 不推荐别的了,IDEA 自带的数据库工具就很牛逼!
  8. Docker学习笔记---通俗易懂
  9. hdu4284 dfs+floyd
  10. hdu4421 2-sat(枚举二进制每一位)