接入七牛云对象存储
注册七牛云账号,点右上角的密钥管理,key和secret需要复制到application.properties中。
因为用到对象云存储,放一些静态资源,所以还需要实名认证。
个人实名认证后,可以创建存储空间了,这个空间的名字也就是配置文件中对应的bucket,然后就有一个免费试用30天的外链域名。
配置文件
这时我上传文件的时候没有反应,发现返回状态是400,{"error":"incorrect region, please use up-z1.qiniup.com"}
,然后在七牛云问答社区中找到与这个问题有关的回答,大部分让修改Configuration的Zone,因为是地区不匹配,这个地区是当时你新建空间选择的地区,有华北,华南,华东等,我选的华北,然后根据文档修改对应的Zone或者是请求的URI。
@Slf4j
@Data
public class QiNiuConfig {
private String accessKey;
private String secretKey;
private String bucket;
private Zone zone;
//Zone.zone0:华东
//Zone.zone1:华北
//Zone.zone2:华南
//Zone.zoneNa0:北美
private String domainOfBucket;
private long expireInSeconds;
private static QiNiuConfig instance = new QiNiuConfig();
private QiNiuConfig(){
Properties prop = new Properties();
try {
prop.load(QiNiuConfig.class.getResourceAsStream("/qiniu.properties"));
accessKey = prop.getProperty("qiniu.access-key");
secretKey = prop.getProperty("qiniu.secret-key");
bucket = prop.getProperty("qiniu.bucket");
domainOfBucket = prop.getProperty("qiniu.domain-of-bucket");
expireInSeconds = Long.parseLong(prop.getProperty("qiniu.expire-in-seconds"));
String zoneName = prop.getProperty("qiniu.zone");
if(zoneName.equals("zone0")){
zone = Zone.zone0();
}else if(zoneName.equals("zone1")){
zone = Zone.zone1();
}else if(zoneName.equals("zone2")){
zone = Zone.zone2();
}else if(zoneName.equals("zoneNa0")){
zone = Zone.zoneNa0();
}else if(zoneName.equals("zoneAs0")){
zone = Zone.zoneAs0();
}else{
throw new Exception("Zone对象配置错误!");
}
} catch (Exception e)