用户在访问应用服务器,加入服务器是1M/s,加入用户使用的是我们的应用服务器的图片,一张图片100k,十个用户同时使用,带宽也就占完了,于是我们借助一个新的图片服务器,我们将图片放到服务器上,此时用户使用图片,就去访问图片服务器。
自建图片服务器成本消耗大,于是我们借助官方的云服务器:七牛云 (免费)。
在七牛云官网注册账号,进行实名认证后,在空间管理里创建一个公开空间。
进入七牛云开发者中心
选择javaSDK
导入最新的七牛云依赖
域名查看
新建一个qiniuUtils工具类
url设置为自己域名
accessKey和accessSerectKey在application.properties里设置
package com.kaisa.blog.utils;
import com.alibaba.fastjson.JSON;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
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 org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
@Component
public class QiniuUtils {
public static final String url = "http://域名/";
@Value("${qiniu.accessKey}")
private String accessKey;
@Value("${qiniu.accessSecretKey}")
private String accessSecretKey;
public boolean upload(MultipartFile file,String fileName){
//构造一个带指定 Region 对象的配置类
Configuration cfg = new Configuration(Region.huabei());
//...其他参数参考类注释
UploadManager uploadManager = new UploadManager(cfg);
//...生成上传凭证,然后准备上传
String bucket = "blog-merist";
//默认不指定key的情况下,以文件内容的hash值作为文件名
try {
byte[] uploadBytes = file.getBytes();
Auth auth = Auth.create(accessKey, accessSecretKey);
String upToken = auth.uploadToken(bucket);
Response response = uploadManager.put(uploadBytes, fileName, upToken);
//解析上传成功的结果
DefaultPutRet putRet = JSON.parseObject(response.bodyString(), DefaultPutRet.class);
return true;
} catch (Exception ex) {
ex.printStackTrace();
}
return false;
}
}
application.propertise
qiniu.accessKey=XXXXXX
qiniu.accessSerectKey=XXXXXX
密钥在七牛云平台的密钥管理里查看