一只IT界中的菜鸟,立志做一只最菜的鸟
授人以鱼不如授人以渔
作为程序猿要有一个善于分析产品,起码你要知道让你做你能不能实现功能
话不多说进入主题
你觉得你的web项目的图片,视频应该放在那里,放在项目中吗?
如果这样不好意思,你的项目大小可能会到达一个不可估量的大小,同时也会影响你的程序运行效率,
所以在实际开发中这些资源都是放在一台单独的服务器中,但是服务器成本高,所以阿里的oss服务应时而生,相比于传统的服务器节约了很多成本,也提供了更为安全的服务
首先我们要开通短信服务
产品分类=》对象存储=》对象存储oss
如果不知道怎么开通操作私信我
创建列表
添加maven依赖库
yaml配置
#不同的服务器,地址不同 aliyun.oss.file.endpoint=******* aliyun.oss.file.keyid=******* aliyun.oss.file.keysecret=******* //上一个博客写道过含义这里就不再说了 #bucket可以在控制台创建,也可以使用java代码创建 aliyun.oss.file.bucketname=*******
实体类字段
//与配置文件中对应 可以通过这样获取 @Value("${aliyun.oss.file.bucketname}") public static String END_POINT; public static String KET_ID; public static String KRY_SECRET; public static String BUCK_NAME;
服务层接口
String uploadAvator(MultipartFile file) throws IOException; //MultipartFile 表单上传有图片上需要
实现层(核心代码)
@Override public String uploadAvator(MultipartFile file) throws IOException { //OssUtils实体类 String endpoint = OssUtils.END_POINT; ; // 云账号AccessKey String accessKeyId = OssUtils.KET_ID; String accessKeySecret = OssUtils.KRY_SECRET; String buckName = OssUtils.BUCK_NAME; // 创建OSSClient实例。 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); // 文件流 InputStream inputStream = file.getInputStream(); //当前上传文件的名称 String fileName = file.getOriginalFilename(); //生成一个随机的数据防止文件被覆盖 String uuid = UUID.randomUUID().toString(); fileName = uuid + fileName; //根据实际情况分为不同的文件夹 String date = new DateTime().toString("yyyy/MM/dd").replaceAll("-", ""); //第一个参数是 buck的名称 第二个参数是 你输入流的文件按名称 fileName = date + "/" + fileName; ossClient.putObject(buckName, fileName, inputStream); // 关闭OSSClient,应放在finally中 ossClient.shutdown(); //获取上传成功侯的路劲 //此url应存放到数据库,以此为根据可以访问 String url = "https://" + buckName + "." + endpoint + "/" + fileName; return url; }
如果有不明白的地方,可在下方留言评论或者私信留言,空闲时间看到会回复,如有不同见解欢迎指出问题,共同进步!!!
结束语
预祝全国高考考生,旗开得胜 高考加油送给千万辛辛学子