之前给大家介绍了sso的相关知识点和集成方案,考虑到每个系统所属行业的不同,这边针对于不同行业做了一些统一的sso单点登录界面模板,使用fileupload多文件上传+OSS阿里云存储方案。
(企业架构源码可以加求球:三五三六二四七二五九)
1. 阿里云oss存储Utils
- public class AliyunUtils {
- private static AliyunUtils aliyun;
- private AliyunUtils() {
- }
- public static synchronized AliyunUtils getInstance(){
- if(aliyun==null){
- aliyun=new AliyunUtils();
- }
- return aliyun;
- }
- /**
- * 上传byte数组
- * @param fileByte
- * @param fileKey
- */
- public void uploadByte(byte[] fileByte, String fileKey){
- // 创建OSSClient实例
- OSSClient ossClient = new OSSClient(CloudConstant.ENDPOINT, CloudConstant.ACCESSKEYID, CloudConstant.ACCESSKEYSECRET);
- // 上传byte数组
- ossClient.putObject(CloudConstant.BUCKET, fileKey, new ByteArrayInputStream(fileByte));
- // 关闭client
- ossClient.shutdown();
- }
- /**
- * 上传文件流
- * @param inputStream
- * @param fileKey
- */
- public void uploadInputStream(InputStream inputStream, String fileKey){
- // 创建OSSClient实例
- OSSClient ossClient = new OSSClient(CloudConstant.ENDPOINT, CloudConstant.ACCESSKEYID, CloudConstant.ACCESSKEYSECRET);
- // 上传文件流
- ossClient.putObject(CloudConstant.BUCKET, fileKey, inputStream);
- // 关闭client
- ossClient.shutdown();
- }
- /**
- * 删除文件
- * @param fileKey
- */
- public void deleteFile(String fileKey){
- // 创建OSSClient实例
- OSSClient ossClient = new OSSClient(CloudConstant.ENDPOINT, CloudConstant.ACCESSKEYID, CloudConstant.ACCESSKEYSECRET);
- // 删除文件
- ossClient.deleteObject(CloudConstant.BUCKET, fileKey);
- // 关闭client
- ossClient.shutdown();
- }
- //base64字符串转化成图片
- @SuppressWarnings("restriction")
- public static byte[] BASE64DecoderStringToByte(String imgStr)
- { //对字节数组字符串进行Base64解码并生成图片
- if (imgStr == null) //图像数据为空
- return null;
- sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
- try {
- //Base64解码
- byte[] b = decoder.decodeBuffer(imgStr);
- return b;
- } catch (Exception e){
- return null;
- }
- }
- public static void main(String[] args) {
- //AliyunUtils.getInstance().uploadByte(BASE64DecoderStringToByte(base64), "aabb.jpg");
- }
- }
2. 阿里云配置常量类(可以配置到数据库或者properties,后面会更新配置方式)
- public class CloudConstant {
- /****************阿里云OSS上传文件配置****************/
- public static final String ENDPOINT = "http://oss-cn-shanghai.aliyuncs.com"; //外网访问域名
- //public static final String ENDPOINT = "http://oss-cn-shanghai-internal.aliyuncs.com"; //内网访问域名
- public static final String ACCESSKEYID = "12345678qwertyu; //标识用户
- public static final String ACCESSKEYSECRET = "1234567890WERTYUIO"; //加密签名字符
- public static final String BUCKET = "huiyi-bucket"; //存储空间
- /****************背景文件路径配置****************/
- public static final String BACK_IMG_INFO_PATH = "sso/backageImg/";
- }
3. sso templateController类
- public String save(SsoTemplate ssoTemplate, Model model, RedirectAttributes redirectAttributes, @RequestParam(value = "file", required = false) MultipartFile file) {
- if (!beanValidator(model, ssoTemplate)) {
- return form(ssoTemplate, model);
- }
- String fileName = String.valueOf(new Date().getTime());
- String staff = "";
- String fileKey = "";
- // 上传文件
- if (file.getSize() != 0) {
- staff = FilenameUtils.getExtension(file.getOriginalFilename());
- fileKey = CloudConstant.BACK_IMG_INFO_PATH + fileName + "." + staff;
- // 删除OSS文件
- AliyunUtils.getInstance().deleteFile(fileKey);
- // 上传文件至阿里云OSS
- try {
- AliyunUtils.getInstance().uploadInputStream(file.getInputStream(), fileKey);
- ssoTemplate.setImg(fileKey);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- ssoTemplateService.save(ssoTemplate);
- addMessage(redirectAttributes, "保存模板成功");
- return "redirect:" + Global.getAdminPath() + "/sso/ssoTemplate";
- }
相关推荐
8. **源码结构分析**:"spring boot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap实现后台权限管理系统源码.docx"可能是项目的主要代码文档,详细描述了源码结构和实现细节。"demo-boot"可能是一个演示性的Spring ...
总的来说,这个项目涵盖了现代Web开发的多个重要领域,包括后端开发(Springboot、MybatisPlus)、前端开发(Vue.js)、云存储(OSS)以及数据管理。对于想要提升全栈开发能力或者对素材管理有兴趣的开发者来说,这...
总的来说,这个项目展示了如何利用Dubbo进行服务间的文件传输,并通过OSS实现文件的云端存储。这在分布式系统中是常见的应用场景,有助于提高系统的可扩展性和可靠性。通过Spring的整合,整个流程可以更加优雅地实现...
总的来说,SSO单点登录的实现涉及身份验证、票据管理和服务间的协作。在Java环境下,我们可以选择Spring Security、CAS或Keycloak等工具来构建SSO系统,并结合服务综合治理框架,如Spring Cloud或Netflix OSS,提高...
在本文中,我们将深入探讨如何使用SpringBoot与OSS(Object Storage Service)集成,实现文件的上传、查看、删除和下载功能。OSS通常是指云存储服务,如阿里云的OSS,它提供了大规模、安全且高可用的在线存储解决...
这个系统结合了Spring Boot后端框架和Vue.js前端框架,以实现文件的分片上传与下载功能,同时具备断点续传和秒传特性,为用户提供了流畅的文件操作体验。 首先,Spring Boot是基于Spring框架的一个快速开发工具,它...
本文将深入探讨如何使用Java语言实现文件的本地上传、OSS(Object Storage Service)普通上传以及OSS大文件的分段上传。我们将重点讲解每个过程,并提供相关的知识点。 首先,我们来看本地文件上传。在Java中,我们...
在Spring Boot项目中,结合Thymeleaf模板引擎,我们可以轻松地实现文件的上传和下载功能。Spring Boot的强大会简化这些操作,而Thymeleaf则提供了方便的前端交互。下面将详细介绍如何实现这两个功能。 一、环境准备...
【标题】"OSS文件上传(带回调)"指的是在Spring Boot应用中集成对象存储服务(Object Storage Service,简称OSS),并实现文件上传功能,同时具备回调机制,即在文件上传完成后,系统会自动执行预设的回调函数,通常...
结合描述,这个项目可能的实现流程是:前端用户通过 React 应用选择或上传代码生成规则,后端 Spring Boot 服务接收到请求并使用 Picocli 解析参数,然后调用对象存储服务获取或存储模板,最后生成相应的代码并返回...
- **文件上传下载**:通过处理HTTP请求,实现文件的上传和下载,可能结合Spring MVC的MultipartFile接口和文件存储服务(如阿里云OSS)。 - **多数据源切换**:配置多个数据库连接,根据业务需求动态切换数据源,...
在本项目中,我们主要探讨如何使用SpringBoot框架与阿里云OSS(Object Storage Service)服务相结合,通过Easypoi库实现文件的导入、导出功能,以及OSS上的文件上传和下载。Easypoi是一个强大的Java操作Excel的工具...
在Java Spring和Flex框架下实现文件上传功能是一个常见的需求,特别是在构建富互联网应用程序(RIA)时。Spring框架提供了强大的后端支持,而Flex则作为前端交互界面,为用户提供丰富的用户体验。下面将详细介绍如何...
Spring MVC框架提供了强大的支持来处理这类操作,它利用了Apache Commons FileUpload库来实现文件的上传功能。下面将详细介绍如何在Spring MVC环境中配置和实现文件上传。 #### 二、Spring MVC文件上传配置 为了使...
在这个ASP.NET WEB版的阿里云操作示例中,用户可以学习如何通过编程接口进行OSS的各种操作,包括单文件上传、批量上传以及分页预览等关键功能。下面将详细介绍这些知识点。 1. **单文件上传** 单文件上传是指将一...
在开发一个基于Java的网盘文件管理系统时,利用阿里云OSS(Object Storage Service)服务可以极大地提升存储和访问效率。阿里云OSS是一个稳定、安全、高效、易用的云存储服务,适合大规模存储非结构化数据,如图片、...
本文将详细介绍如何利用Vue.js框架结合Element UI组件库和阿里云OSS(Object Storage Service)服务来实现文件上传的功能。首先,我们了解Vue Element UI提供的upload组件,它是基于Vue 2.0的一个桌面端组件库,用于...
在本文中,我们将深入探讨如何在Spring MVC框架中实现图片上传功能。Spring MVC是一个流行的Java Web开发框架,它提供了一种模块化的方式来构建Web应用程序,包括处理表单数据和文件上传。在这里,我们重点关注如何...
Spring MVC 是 Spring 框架的一个模块,专为...通过分析这个例子,我们可以学习如何在Spring MVC中实现文件上传功能,以及如何组织和配置一个完整的Web应用程序。这将有助于提升我们对Spring MVC框架的理解和应用能力。
Java 实现上传文件到 OSS(阿里云)的功能示例是指通过 Java 语言实现将文件上传到阿里云对象存储服务(OSS)的功能。本示例主要介绍了 Java 实现上传文件到 OSS 的具体步骤、配置及相关实现技巧。 一、环境准备 ...