OSS对象存储
阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。OSS可用于图片、音视频、日志等海量文件的存储。各种终端设备、Web网站程序、移动应用可以直接向OSS写入或读取数据。
1.开通OSS服务
2.进入控制台
3.创建 Bucket
4.新建文件夹(存放文件)
5.创建完成后,在右上角头像栏找到AccessKey管理
6.点击 创建AccessKey,身份验证后,即可获取到KeyId和KeySercret
实现 1.引入oos依赖com.aliyun.oss aliyun-sdk-oss2.8.3
2.yml文件以及oss配置信息application.yml
server:
port: 8081
mybatis:
type-aliases-package: com.wjj.springbootoos.pojo
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapper-locations: classpath:/mapper/*.xml
spring: #springboot的配置
datasource: #定义数据源
#127.0.0.1为本机测试的ip,3306是mysql的端口号。serverTimezone是定义时区,照抄就好,mysql高版本需要定义这些东西
#useSSL也是某些高版本mysql需要问有没有用SSL连接
url: jdbc:mysql://localhost:3306/oos?serverTimezone=UTC
username: root #数据库用户名,root为管理员
password: root #该数据库用户的密码mysql.session
application-aliyun-oos.properties
aliyun.endPoint=oss-cn-hangzhou.aliyuncs.com
aliyun.urlPrefix=junkai1.oss-cn-hangzhou.aliyuncs.com
aliyun.accessKeyId=LTAI5tPP4FLVrM92oSZxtWV6
aliyun.accessKeuSecrect=cxLRwCyr0z2QYKYvaDDPMLMDEYMLLP
aliyun.bucketName=junkai1
aliyun.fileHost=ketai
spring.servlet.multipart.max-file-size=100MB
spring.servlet.multipart.max-request-size=200MB
这里需要填入直接的,可通过上面的AccessKey管理进入找到相对应的填入即可
configAliyunOssConfig
封装对应属性
service接口实现类 上传@Autowired
private OSS client;
@Autowired
private fileMapper mapper;
@Autowired
private AliyunOssConfig aliyunOssConfig;
//共有属性代码 允许上传图片的格式
private static final String[] IMAGE_TYPE =new String[]{
".bmp",".jpg",".jpeg",".gif",".png"
};
@Override
public String upload(MultipartFile multipartFile) {
//获取基本信息
String endpoint=aliyunOssConfig.getEndPoint();
String bucketName=aliyunOssConfig.getBucketName();
String accesKeyId=aliyunOssConfig.getAccessKeyId();
String accessKeuSecret=aliyunOssConfig.getAccessKeuSecrect();
String fileHost=aliyunOssConfig.getFileHost();
//校验格式
boolean isLegal=false;
for (String type:IMAGE_TYPE){
if (StringUtils.endsWithIgnoreCase(multipartFile.getOriginalFilename(),type)){
isLegal=true;
break;
}
}
if (isLegal==false){
return StatusCode.ERROR.getMsg();
}
//1.获取文件名称
String orName=multipartFile.getOriginalFilename();
//2.获取文件的类型
String fileType=orName.substring(orName.lastIndexOf("."));
//3.新名称
String newFileName= UUID.randomUUID().toString()+fileType;
System.out.println(newFileName);
//4.构建文件上传路径
String filePath=new SimpleDateFormat("yyyy/MM/dd").format(new Date());
//5.文件上传的路径
String uploadUrl=fileHost+"/"+filePath+"/"+newFileName;
System.out.println(uploadUrl);
System.out.println(filePath);
//6.开始上传
InputStream inputStream=null;
try {
inputStream=multipartFile.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
ObjectMetadata meta=new ObjectMetadata();
meta.setContentType("image/jpg");
//上传阿里云
client.putObject(bucketName,uploadUrl,inputStream,meta);
mapper.add(newFileName,uploadUrl);
return "http://"+bucketName+"."+endpoint+"/"+uploadUrl;
}
删除controller层下载 下载
下载只需将图片路径封装打a标签即可
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧