目录
一、测试
二、整合
一、测试
注册七牛云账号,并进行邮箱绑定和实名认证。
七牛云每个月送10G完全够我们开发
创建一个空间
存储区域哪里离你近选哪里,访问控制一定要公开。
创建完成后,后期上传的静态资源,可以根据域名+文件名直接访问,自定义域名必须是备案域名
默认送一个测试域名,在上图位置
找到秘钥管理
AK,SK是我们访问要用到的
在文档中找到开发者中心
复制依赖并导入
在测试类编写新方法
//构造一个带指定 Region 对象的配置类
Configuration cfg = new Configuration(Region.region0());
cfg.resumableUploadAPIVersion = Configuration.ResumableUploadAPIVersion.V2;// 指定分片上传版本
//...其他参数参考类注释
UploadManager uploadManager = new UploadManager(cfg);
//...生成上传凭证,然后准备上传
String accessKey = "your access key";
String secretKey = "your secret key";
String bucket = "your bucket name";
//如果是Windows情况下,格式是 D:\\qiniu\\test.png
String localFilePath = "/home/qiniu/test.png";
//默认不指定key的情况下,以文件内容的hash值作为文件名
String key = null;
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) {
Response r = ex.response;
System.err.println(r.toString());
try {
System.err.println(r.bodyString());
} catch (QiniuException ex2) {
//ignore
}
}
填入AK,SK,和你的空间名即可运行测试
如果遇到如下报错
{ResponseInfo:com.qiniu.http.Response@ba4f370,status:400, reqId:XhcAAACBZ4c1k18X, xlog:X-Log, xvia:, adress:upload.qiniup.com/xxx.xxx.xxx.xxx:xxx, duration:0.449000 s, error:incorrect region, please use up-z2.qiniup.com, bucket is: xxx}
这是因为区域不一样,更改配置信息
Configuration cfg = new Configuration(Zone.zone2());
Zone.zoneX()看please use up-zX是多少。
运行成功后可以看到存储区域多出了文件
打开外链可以访问(域名+文件名)
二、整合
导入依赖
<!--七牛云上传-->
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>7.2.11</version>
</dependency>
<!-- 七牛云依赖Gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
配置yml
oss:
qiniu:
domain: qtxxxxxxxx.hn-xxx.xxxxx.com # 访问域名(默认使用七牛云测试域名)
accessKey: Gn0uwxxxxxxxxxxxxxxxxxxxxy3GEVmZqR58ed # 公钥 刚才的AK
secretKey: hs-ScVOxxxxxxxxxxxo0yG33uHm8_NkmnKy # 私钥 刚才的SK
bucketName: officxxxxxxxxxxicture #存储空间名称
编写配置类
package com.qingyun.gulimall.product.config;
import lombok.Data;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Data
@Component
public class QiNiuYunConfig {
/**
* 七牛域名domain
*/
@Value("${oss.qiniu.domain}")
private String qiniuDomain;
/**
* 七牛ACCESS_KEY
*/
@Value("${oss.qiniu.accessKey}")
private String qiniuAccessKey;
/**
* 七牛SECRET_KEY
*/
@Value("${oss.qiniu.secretKey}")
private String qiniuSecretKey;
/**
* 七牛空间名
*/
@Value("${oss.qiniu.bucketName}")
private String qiniuBucketName;
}
后续继续编写Service,实现类,Controller即可正常使用