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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000 次 1年
对象存储OSS,敏感数据保护2.0 200GB 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,搭建一个在线教育视频课程分享网站。
相关文章
|
2月前
|
SQL 分布式计算 Serverless
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
|
3月前
|
前端开发 安全 测试技术
为什么我的“OSS”上传图片会失败?
在项目中添加上传头像功能时,起初通过阿里云OSS SDK快速实现并返回图片URL给前端。然而,mentor指出直接回传密钥存在安全风险,建议使用STS临时授权优化安全性。优化后,本地测试正常,但线上环境出现跨域问题。最终通过调整前端代码,使用`window.location.protocol`确保请求协议一致,解决了跨域问题。这一过程不仅提升了功能的健壮性,也让我深刻理解了安全性和兼容性的重要性。
172 7
|
5月前
|
弹性计算 数据管理 应用服务中间件
活动实践 | 借助OSS搭建在线教育视频课程分享网站
本教程指导用户在阿里云ECS实例上搭建在线教育网站,包括重置ECS密码、配置安全组、安装Nginx、创建网站页面、上传数据至OSS、开通OSS传输加速、配置生命周期策略及清理资源等步骤,实现高效、低成本的数据管理和网站运营。
活动实践 | 借助OSS搭建在线教育视频课程分享网站
|
9月前
|
机器学习/深度学习 人工智能 专有云
人工智能平台PAI使用问题之怎么将DLC的数据写入到另一个阿里云主账号的OSS中
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
5月前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
8月前
|
存储 机器学习/深度学习 弹性计算
阿里云EMR数据湖文件系统问题之OSS-HDFS全托管服务的问题如何解决
阿里云EMR数据湖文件系统问题之OSS-HDFS全托管服务的问题如何解决
111 1
|
9月前
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
9月前
|
存储 运维 安全
阿里云OSS的优势
【7月更文挑战第19天】阿里云OSS的优势
347 2
|
9月前
|
存储 API 开发工具
阿里云OSS
【7月更文挑战第19天】阿里云OSS
393 1
|
9月前
|
存储 弹性计算 对象存储
预留空间是什么?阿里云OSS对象存储预留空间说明
阿里云OSS预留空间是预付费存储产品,提供折扣价以锁定特定容量,适用于抵扣有地域属性的Bucket标准存储费用及ECS快照费。通过购买预留空间,如500GB通用预留+100GB标准-本地冗余存储包,用户可优化成本。
347 4