【在线教育】课程封面上传图片到阿里云OSS(三)

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 【在线教育】课程封面上传图片到阿里云OSS

2.2.2 显示已有封面


  • 提供变量

image.png

将变量上传组件绑定

image.png

查询详情时,将封面图片路径添加变量中

image.png

2.3 后端测试数据


image.png

@PostMapping("/avatar/upload")
publicBaseResultavatarUpload(MultipartFilefile) {
Stringurl="https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif?imageView2/1/w/80/h/80";
returnBaseResult.ok("上传成功", url);
    }

2.4 后端实现


2.4.1 搭建环境


  • 添加坐标

image.png

<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.15.0</version></dependency>

2.4.2 配置类


  • yml 配置
aliyun:
oss:
file:
pathProtocol: httpsendpoint: oss-cn-shanghai.aliyuncs.comkeyId: LTAI5t7oNGMkQJ1X8RqtLet2keySecret: 这里是密码dirName: avatarbucketName: czxy-lt

image.png

配置类packagecom.czxy.zx.course.oss;
importlombok.Data;
importorg.springframework.boot.context.properties.ConfigurationProperties;
importorg.springframework.stereotype.Component;
/*** @author 桐叔* @email liangtong@itcast.cn*/@Data@Component@ConfigurationProperties(prefix="aliyun.oss.file")
publicclassOssProperties {
privateStringpathProtocol;    //路径协议privateStringendpoint;        //地域privateStringkeyId;           //账号privateStringkeySecret;       //密码privateStringdirName;         //上传目录privateStringbucketName;      //Bucket 名称}

image.png

2.4.2 上传工具类


image.png

packagecom.czxy.zx.course.oss;
importcom.aliyun.oss.OSS;
importcom.aliyun.oss.OSSClientBuilder;
importcom.czxy.zx.exception.EduException;
importorg.springframework.stereotype.Component;
importorg.springframework.web.multipart.MultipartFile;
importjavax.annotation.Resource;
importjava.io.FileInputStream;
importjava.io.IOException;
importjava.io.InputStream;
/*** @author 桐叔* @email liangtong@itcast.cn*/@ComponentpublicclassOssUtils {
@ResourceprivateOssPropertiesossProperties;
publicStringupload(MultipartFilefile) {
if(file==null) {
thrownewEduException("上传文件为空");
        }
try {
// 创建OSSClient实例。OSSossClient=newOSSClientBuilder().build(ossProperties.getEndpoint(), ossProperties.getKeyId(), ossProperties.getKeySecret());
Stringpath=ossProperties.getDirName() +"/"+System.currentTimeMillis() +".png";
// 数据流InputStreaminputStream=file.getInputStream();
// 填写Bucket名称和Object完整路径。Object完整路径中不能包含Bucket名称。ossClient.putObject(ossProperties.getBucketName(), path, inputStream);
// 关闭OSSClient。ossClient.shutdown();
Stringurl=ossProperties.getPathProtocol() +"://"+ossProperties.getBucketName()+"."+ossProperties.getEndpoint()+"/"+path;
returnurl;
        } catch (IOExceptione) {
thrownewEduException("文件上传有误");
        }
    }
}

2.4.3 上传功能


image.png

注入工具

image.png

调用工具

@ResourceprivateOssUtilsossUtils;
@PostMapping("/avatar/upload")
publicBaseResultavatarUpload(MultipartFilefile) {
Stringurl=ossUtils.upload(file);
returnBaseResult.ok("上传成功", url);
    }
相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
1月前
|
Java API 开发工具
如何用阿里云 oss 下载文件
阿里云对象存储服务(OSS)提供了多种方式下载文件,以下讲解下各种方式的下载方法
789 1
|
1月前
|
存储 安全 对象存储
手把手教你搭建阿里云图床(PicGo+Typora+阿里云OSS),新手小白一看就会
本文详细介绍了怎样帮助新手小白从注册,购买阿里云OSS,到一步一步配置OSS做为图床,和PicGo、Typora软件连接,配置好关联之后,在使用Typora写文章时,如果需要插入图片,只需要将图片复制粘贴到Typora的编辑区域,就会自动通过PicGo上传到指定图床,自动复制外网能访问的URL并展示,简直不要太方便,极大的解决了编辑文章时复制处理图片链接的痛点。
158 2
手把手教你搭建阿里云图床(PicGo+Typora+阿里云OSS),新手小白一看就会
|
1月前
|
弹性计算 前端开发 小程序
微信小程序上传文件至阿里云OSS直传(java后端签名+前端直传)
当前的通用文件上传方式是通过前端上传到服务器,再由服务器转存至对象存储。这种方式在处理小文件时效率尚可,但大文件上传因受限于服务器带宽,速度较慢。例如,一个100MB的文件在5Mbps带宽的阿里云ECS上上传至服务器需160秒。为解决此问题,可以采用后端签名的方式,使微信小程序直接上传文件到阿里云OSS,绕过服务器中转。具体操作包括在JAVA后端引入相关依赖,生成签名,并在微信小程序前端使用这个签名进行文件上传,注意设置正确的请求头和formData参数。这样能提高大文件上传的速度。
|
7天前
|
存储 Java API
阿里云oss简介和使用流程
本文档介绍了如何准备阿里云OSS(对象存储服务)并开始使用它。首先,需要注册阿里云账号并进行实名认证,然后购买OSS资源包。在阿里云控制台中,可以创建和管理OSS存储空间(称为“Bucket”)。接着,文章简要介绍了阿里云OSS,它是一个基于云端的对象存储服务,提供高可靠性、高性能、低成本和易于使用的特性。 在阿里云OSS控制台,用户可以进行文件的上传和下载操作。通过API,开发者可以使用各种编程语言(如Java)来创建、删除Bucket以及上传、下载和删除文件。例如,Java代码示例展示了如何创建Bucket、上传文件、删除文件以及下载文件到本地的操作。
|
14天前
|
开发工具 对象存储
阿里云OSS文件上传
阿里云OSS文件上传
55 0
|
14天前
|
存储 缓存 Java
阿里云OSS实战从入门到大神
说起阿里云OSS,那作用和功能都是非常强大的,它可以存放图片,音频,视频等资源文件,这些资源文件,你不必存放到服务器的硬盘里,这样既可以节省服务器硬盘空间,又可以降低服务器的读写压力,非常适合大并发的架构。
54 0
|
26天前
|
存储 对象存储 容器
阿里云OSS对象存储基础入门
阿里云OSS对象存储基础入门
87 0
|
2月前
|
对象存储
minio临时凭证直传切换到阿里云oss
minio临时凭证直传切换到阿里云oss
170 1
|
4月前
|
存储 测试技术 区块链
阿里云、百度云及移动云对象存储横向性能对比测试
在企业的数字化转型进程中,我们观察到越来越多的公司将其IT基础设施迁移到云端。随着企业业务的持续运营,无论是储存、处理、分享还是删除,都会产生大量的数据,这就要求有一个既可靠又高效的系统来管理和存储这些信息。对象存储产品在这个场景中扮演了至关重要的角色。它们以一种可扩展、安全、持久的方式,有效地满足了对大规模非结构化数据存储的需求。 尽管市场上云计算提供商众多,各自都有自己独特的对象存储产品,面对这样的丰富选择,如何寻找最符合企业需求的产品呢?这正是企业今天寻求解答的问题。 在本篇文章中,我们将深入进行一项横向对比测试,专门对阿里云OSS、百度云BOS和移动云EOS这三大云服务提供商的对象
1361 0
|
3月前
|
存储 Java 对象存储
springboot配置阿里云OSS存储实现文件上传下载功能
【1月更文挑战第1天】springboot配置阿里云OSS存储实现文件上传下载功能
537 2

热门文章

最新文章