发表于: 2021-04-09 23:32:25

1 1259


今天完成的事情:

上传头像到阿里云

开通腾讯云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将拒绝该请求的访问。









返回列表 返回列表
评论

    分享到