一、前言
1、用户文件存储在项目中,项目体积会日益增大,给日后项目代码更新、部署上传时间增长。
此外 linux、windows 的路径不一致,保存文件的路径只能使用相对路径
,前端展示文件时 src
需要 + http://port/xxx
补全路径,增加了点业务逻辑。
等等。
2、OSS云存储技术优点:
1.OSS 内存省钱
2.可以使用了第三方cdn,访问速度快
3、使用了阿里云OSS技术其他优点:
1.浏览器访问图片(png、jpg…)url,显示图片;
2.浏览器访问文件(doc、pdf…)url,自动下载文件;
二、思路
1、前台上传图片给后台
2、后台把图片上传到阿里云服务器的OSS中
3、同时生成图片访问的 url,保存到数据库中
4、显示图片的时候,使用 url,如下的使用方式
<img src="url" />
二、代码
2017.7.14 更新,代码已经放在 github 上了:https://github.com/larger5/oss_aliyun_springboot.git
1、代码目录
2、entity 实体
package com.cun.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="t_picture")
public class Picture {
@Id
@GeneratedValue
private Integer id;
@Column(length=50)
private String picName;
@Column(length=200)
private String url;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getPicName() {
return picName;
}
public void setPicName(String picName) {
this.picName = picName;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
2、dao 接口
package com.cun.dao;
import org.springframework.data.jpa.repository.JpaRepository;
import com.cun.entity.Picture;
public interface PictureDao extends JpaRepository<Picture, Integer>{
}
3、Service 接口
package com.cun.service;
import java.util.List;
import com.cun.entity.Picture;
public interface PictureService {
/**
* 删
* @param id
*/
void deletePicture(Integer id);
/**
* 改
* @param picture
*/
void updatePicture(Picture picture);
/**
* 查
* @param id
* @return
*/
Picture getPicture(Integer id);
/**
* 增
* @param picture
*/
void insertPicture(Picture picture);
/**
* 全
* @return
*/
List<Picture> getAllPictures();
}
4、Service 实现类
package com.cun.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.cun.dao.PictureDao;
import com.cun.entity.Picture;
import com