发表于: 2021-04-09 23:32:25
1 1262
今天完成的事情:
上传头像到阿里云
开通腾讯云OSS业务
思考图片迁移的逻辑
明天计划的事情:
图片迁移
深度思考
遇到的问题:
怎么获取上传图片的url
收获:
OSS:
/**
* 上传文件到oss
*
* @param file
* @return
* @throws ImgException
*/
public String upFileImage(MultipartFile file) throws ImgException {
if (file.getSize() > 1024 * 1024) {
throw new ImgException("上传图片大小不能超过1M!");
}
String originalFilename = file.getOriginalFilename();
String substring = originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase();
Random random = new Random();
//文件名是随机数+当前时间戳+后缀名构成。
String name = random.nextInt(10000) + System.currentTimeMillis() + substring;
try {
InputStream inputStream = file.getInputStream();
this.uploadFile2OSS(inputStream, name);
return name;
} catch (Exception e) {
throw new ImgException("图片上传失败");
}
}
接口:
/**
* 上传头像接口
* @param file
* @param model
* @param request
* @return
*/
@RequestMapping(value = "/user/image",method = RequestMethod.POST)
public String uploadImg(@RequestParam MultipartFile file,Model model,HttpServletRequest request){
try {
String head = userService.upFielimage(file, request.getParameter("username"));
model.addAttribute("data", head);
} catch (IOException e) {
e.printStackTrace();
} catch (ImgException e) {
e.printStackTrace();
}
return "upFileImage";
}
缩略图
阿里云有这个功能 创建样式直接用即可
防盗链:对象存储OSS支持对存储空间(Bucket)设置防盗链,即通过对访问来源设置白名单的机制,避免OSS资源被其他人盗用。
什么是盗链: 盗取你的图片链接,毕竟这个可是要花钱的
防盗链的原理:防盗链通过请求Header中的Referer地址判断访问来源。当浏览器向Web服务器发送请求的时候,请求Header中将包含Referer,用于告知Web服务器该请求的页面链接来源。OSS根据浏览器附带的Referer与用户配置的Referer规则来判断允许或拒绝此请求,如果Referer一致,则OSS将允许该请求的访问;如果Referer不一致,则OSS将拒绝该请求的访问。
评论