首先导入maven
<!-- https://mvnrepository.com/artifact/com.qiniu/qiniu-java-sdk -->
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>7.13.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
如果前端传递路径是String类型
public void testUpload() {
//构造一个带指定 Region 对象的配置类
Configuration cfg = new Configuration(Region.region1());
cfg.resumableUploadAPIVersion = Configuration.ResumableUploadAPIVersion.V2;// 指定分片上传版本
//...其他参数参考类注释
UploadManager uploadManager = new UploadManager(cfg);
//...生成上传凭证,然后准备上传
String accessKey = "";
String secretKey = "";
String bucket = "";
//如果是Windows情况下,格式是 D:\\qiniu\\test.png
String localFilePath = "D:\\Desktop\\七牛云.txt";
//默认不指定key的情况下,以文件内容的hash值作为文件名
String key = "LYtest";
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
try {
Response response = uploadManager.put(localFilePath, key, upToken);
//解析上传成功的结果
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
System.out.println(putRet.key);
System.out.println(putRet.hash);
} catch (QiniuException ex) {
ex.printStackTrace();
if (ex.response != null) {
System.err.println(ex.response);
try {
String body = ex.response.toString();
System.err.println(body);
} catch (Exception ignored) {
}
}
}
}
如果前端传的是MultipartFile类型
public String upload(MultipartFile file, String objectName) {
//构造一个带指定 Region 对象的配置类
Configuration cfg = new Configuration(Region.region1());
cfg.resumableUploadAPIVersion = Configuration.ResumableUploadAPIVersion.V2;// 指定分片上传版本
//...其他参数参考类注释
UploadManager uploadManager = new UploadManager(cfg);
/
如果是Windows情况下,格式是 D:\\qiniu\\test.png
// String localFilePath = "D:\\Desktop\\七牛云.txt";
//默认不指定key的情况下,以文件内容的hash值作为文件名
String key = objectName;
Auth auth = Auth.create(accessKeyId, accessKeySecret);
String upToken = auth.uploadToken(bucketName);
try {
Response response = uploadManager.put(file.getBytes(), key, upToken);
//解析上传成功的结果
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
System.out.println(putRet.key);
System.out.println(putRet.hash);
StringBuffer stringBuilder = new StringBuffer("http://shu59dtch.hb-bkt.clouddn.com/");
stringBuilder
.append(objectName);
return stringBuilder.toString();
} catch (QiniuException ex) {
ex.printStackTrace();
if (ex.response != null) {
System.err.println(ex.response);
try {
String body = ex.response.toString();
System.err.println(body);
} catch (Exception ignored) {
}
}
return null;
} catch (IOException e) {
throw new RuntimeException(e);
}
}
这个代码传的是图片
public String upload(MultipartFile file, String objectName) {
//构造一个带指定 Region 对象的配置类
Configuration cfg = new Configuration(Region.region1());
cfg.resumableUploadAPIVersion = Configuration.ResumableUploadAPIVersion.V2;// 指定分片上传版本
//...其他参数参考类注释
UploadManager uploadManager = new UploadManager(cfg);
//...生成上传凭证,然后准备上传
// String bucket = "web-ly";
如果是Windows情况下,格式是 D:\\qiniu\\test.png
// String localFilePath = "D:\\Desktop\\七牛云.txt";
//默认不指定key的情况下,以文件内容的hash值作为文件名
String key = objectName;
Auth auth = Auth.create(accessKeyId, accessKeySecret);
String upToken = auth.uploadToken(bucketName);
try {
Response response = uploadManager.put(file.getInputStream(), key, upToken, null, null);
//解析上传成功的结果
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
System.out.println(putRet.key);
System.out.println(putRet.hash);
StringBuffer stringBuilder = new StringBuffer("http://shu59dtch.hb-bkt.clouddn.com/");
stringBuilder
.append(objectName);
return stringBuilder.toString();
} catch (QiniuException ex) {
ex.printStackTrace();
if (ex.response != null) {
System.err.println(ex.response);
try {
String body = ex.response.toString();
System.err.println(body);
} catch (Exception ignored) {
}
}
return null;
} catch (IOException e) {
throw new RuntimeException(e);
}
}