`
Swifie
  • 浏览: 10677 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

Spring mvc+oss存储多文件上传实现SSO单点登录模板管理

 
阅读更多

之前给大家介绍了sso的相关知识点和集成方案,考虑到每个系统所属行业的不同,这边针对于不同行业做了一些统一的sso单点登录界面模板,使用fileupload多文件上传+OSS阿里云存储方案。

(企业架构源码可以加求球:三五三六二四七二五九)

1. 阿里云oss存储Utils

Java代码  收藏代码
  1. public class AliyunUtils {  
  2.       
  3.     private static AliyunUtils aliyun;  
  4.     private AliyunUtils() {  
  5.           
  6.     }  
  7.   
  8.     public static synchronized AliyunUtils getInstance(){  
  9.         if(aliyun==null){  
  10.             aliyun=new AliyunUtils();  
  11.         }  
  12.         return aliyun;  
  13.     }  
  14.       
  15.     /** 
  16.      * 上传byte数组 
  17.      * @param fileByte 
  18.      * @param fileKey  
  19.      */  
  20.     public void uploadByte(byte[] fileByte, String fileKey){  
  21.         // 创建OSSClient实例  
  22.         OSSClient ossClient = new OSSClient(CloudConstant.ENDPOINT, CloudConstant.ACCESSKEYID, CloudConstant.ACCESSKEYSECRET);  
  23.         // 上传byte数组  
  24.         ossClient.putObject(CloudConstant.BUCKET, fileKey, new ByteArrayInputStream(fileByte));  
  25.         // 关闭client  
  26.         ossClient.shutdown();  
  27.     }  
  28.       
  29.     /** 
  30.      * 上传文件流 
  31.      * @param inputStream 
  32.      * @param fileKey 
  33.      */  
  34.     public void uploadInputStream(InputStream inputStream, String fileKey){  
  35.         // 创建OSSClient实例  
  36.         OSSClient ossClient = new OSSClient(CloudConstant.ENDPOINT, CloudConstant.ACCESSKEYID, CloudConstant.ACCESSKEYSECRET);  
  37.         // 上传文件流  
  38.         ossClient.putObject(CloudConstant.BUCKET, fileKey, inputStream);  
  39.         // 关闭client  
  40.         ossClient.shutdown();  
  41.     }  
  42.       
  43.     /** 
  44.      * 删除文件 
  45.      * @param fileKey 
  46.      */  
  47.     public void deleteFile(String fileKey){  
  48.         // 创建OSSClient实例  
  49.         OSSClient ossClient = new OSSClient(CloudConstant.ENDPOINT, CloudConstant.ACCESSKEYID, CloudConstant.ACCESSKEYSECRET);  
  50.         // 删除文件  
  51.         ossClient.deleteObject(CloudConstant.BUCKET, fileKey);  
  52.         // 关闭client  
  53.         ossClient.shutdown();  
  54.     }  
  55.       
  56.     //base64字符串转化成图片    
  57.     @SuppressWarnings("restriction")  
  58.     public static byte[] BASE64DecoderStringToByte(String imgStr)    
  59.     {   //对字节数组字符串进行Base64解码并生成图片    
  60.         if (imgStr == null//图像数据为空    
  61.             return null;    
  62.         sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();    
  63.         try {    
  64.             //Base64解码    
  65.             byte[] b = decoder.decodeBuffer(imgStr);    
  66.            return b;  
  67.         } catch (Exception e){    
  68.             return null;    
  69.         }    
  70.     }  
  71.       
  72.     public static void main(String[] args) {  
  73.         //AliyunUtils.getInstance().uploadByte(BASE64DecoderStringToByte(base64), "aabb.jpg");  
  74.     }  
  75. }  

 2. 阿里云配置常量类(可以配置到数据库或者properties,后面会更新配置方式)

Java代码  收藏代码
  1. public class CloudConstant {  
  2.       
  3.     /****************阿里云OSS上传文件配置****************/  
  4.     public static final String ENDPOINT = "http://oss-cn-shanghai.aliyuncs.com"; //外网访问域名  
  5.     //public static final String ENDPOINT = "http://oss-cn-shanghai-internal.aliyuncs.com"; //内网访问域名  
  6.     public static final String ACCESSKEYID = "12345678qwertyu; //标识用户  
  7.     public static final String ACCESSKEYSECRET = "1234567890WERTYUIO"//加密签名字符  
  8.     public static final String BUCKET = "huiyi-bucket"//存储空间  
  9.       
  10.     /****************背景文件路径配置****************/  
  11.     public static final String BACK_IMG_INFO_PATH = "sso/backageImg/";   
  12.       
  13. }  

 3. sso templateController类

Java代码  收藏代码
  1. public String save(SsoTemplate ssoTemplate, Model model, RedirectAttributes redirectAttributes, @RequestParam(value = "file", required = false) MultipartFile file) {  
  2.         if (!beanValidator(model, ssoTemplate)) {  
  3.             return form(ssoTemplate, model);  
  4.         }  
  5.   
  6.         String fileName = String.valueOf(new Date().getTime());  
  7.         String staff = "";  
  8.         String fileKey = "";  
  9.         // 上传文件  
  10.         if (file.getSize() != 0) {  
  11.             staff = FilenameUtils.getExtension(file.getOriginalFilename());  
  12.             fileKey = CloudConstant.BACK_IMG_INFO_PATH + fileName + "." + staff;  
  13.             // 删除OSS文件  
  14.             AliyunUtils.getInstance().deleteFile(fileKey);  
  15.             // 上传文件至阿里云OSS  
  16.             try {  
  17.                 AliyunUtils.getInstance().uploadInputStream(file.getInputStream(), fileKey);  
  18.                 ssoTemplate.setImg(fileKey);  
  19.             } catch (IOException e) {  
  20.                 e.printStackTrace();  
  21.             }  
  22.         }  
  23.           
  24.         ssoTemplateService.save(ssoTemplate);  
  25.         addMessage(redirectAttributes, "保存模板成功");  
  26.         return "redirect:" + Global.getAdminPath() + "/sso/ssoTemplate";  
  27.     }  
分享到:
评论

相关推荐

    整合springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap实现权限管理文件上传下载

    8. **源码结构分析**:"spring boot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap实现后台权限管理系统源码.docx"可能是项目的主要代码文档,详细描述了源码结构和实现细节。"demo-boot"可能是一个演示性的Spring ...

    Springboot+OSS+VUE素材管理案例

    总的来说,这个项目涵盖了现代Web开发的多个重要领域,包括后端开发(Springboot、MybatisPlus)、前端开发(Vue.js)、云存储(OSS)以及数据管理。对于想要提升全栈开发能力或者对素材管理有兴趣的开发者来说,这...

    dubbo上传文件+oss上传文件服务.zip

    总的来说,这个项目展示了如何利用Dubbo进行服务间的文件传输,并通过OSS实现文件的云端存储。这在分布式系统中是常见的应用场景,有助于提高系统的可扩展性和可靠性。通过Spring的整合,整个流程可以更加优雅地实现...

    java sso单点登录案例、服务综合治理

    总的来说,SSO单点登录的实现涉及身份验证、票据管理和服务间的协作。在Java环境下,我们可以选择Spring Security、CAS或Keycloak等工具来构建SSO系统,并结合服务综合治理框架,如Spring Cloud或Netflix OSS,提高...

    springboot整合oss实现文件的上传,查看,删除,下载

    在本文中,我们将深入探讨如何使用SpringBoot与OSS(Object Storage Service)集成,实现文件的上传、查看、删除和下载功能。OSS通常是指云存储服务,如阿里云的OSS,它提供了大规模、安全且高可用的在线存储解决...

    springboot+vue实现超大文件分片极速上传与下载完整前后端源码

    这个系统结合了Spring Boot后端框架和Vue.js前端框架,以实现文件的分片上传与下载功能,同时具备断点续传和秒传特性,为用户提供了流畅的文件操作体验。 首先,Spring Boot是基于Spring框架的一个快速开发工具,它...

    文件上传(普通上传,oss上传,oss大文件分段上传)

    本文将深入探讨如何使用Java语言实现文件的本地上传、OSS(Object Storage Service)普通上传以及OSS大文件的分段上传。我们将重点讲解每个过程,并提供相关的知识点。 首先,我们来看本地文件上传。在Java中,我们...

    springboot+thymeleaf 文件上传下载功能实现

    在Spring Boot项目中,结合Thymeleaf模板引擎,我们可以轻松地实现文件的上传和下载功能。Spring Boot的强大会简化这些操作,而Thymeleaf则提供了方便的前端交互。下面将详细介绍如何实现这两个功能。 一、环境准备...

    oss文件上传(带回调)

    【标题】"OSS文件上传(带回调)"指的是在Spring Boot应用中集成对象存储服务(Object Storage Service,简称OSS),并实现文件上传功能,同时具备回调机制,即在文件上传完成后,系统会自动执行预设的回调函数,通常...

    基于 React + Spring Boot + Picocli + 对象存储的代码生成器共享平台,又分为 3 个循.zip

    结合描述,这个项目可能的实现流程是:前端用户通过 React 应用选择或上传代码生成规则,后端 Spring Boot 服务接收到请求并使用 Picocli 解析参数,然后调用对象存储服务获取或存储模板,最后生成相应的代码并返回...

    整合 springboot+mvc+mybatis(通用 mapper)+druid+jsp+bootstrap

    - **文件上传下载**:通过处理HTTP请求,实现文件的上传和下载,可能结合Spring MVC的MultipartFile接口和文件存储服务(如阿里云OSS)。 - **多数据源切换**:配置多个数据库连接,根据业务需求动态切换数据源,...

    springboot整合easypoi实现文件导入导出OSS文件上传和下载。OSS图片导出

    在本项目中,我们主要探讨如何使用SpringBoot框架与阿里云OSS(Object Storage Service)服务相结合,通过Easypoi库实现文件的导入、导出功能,以及OSS上的文件上传和下载。Easypoi是一个强大的Java操作Excel的工具...

    java spring +flex实现文件上传

    在Java Spring和Flex框架下实现文件上传功能是一个常见的需求,特别是在构建富互联网应用程序(RIA)时。Spring框架提供了强大的后端支持,而Flex则作为前端交互界面,为用户提供丰富的用户体验。下面将详细介绍如何...

    spring MVC 上传 &下载

    Spring MVC框架提供了强大的支持来处理这类操作,它利用了Apache Commons FileUpload库来实现文件的上传功能。下面将详细介绍如何在Spring MVC环境中配置和实现文件上传。 #### 二、Spring MVC文件上传配置 为了使...

    阿里云存储OSS操作示例(单、批量上传、删除、分页预览)

    在这个ASP.NET WEB版的阿里云操作示例中,用户可以学习如何通过编程接口进行OSS的各种操作,包括单文件上传、批量上传以及分页预览等关键功能。下面将详细介绍这些知识点。 1. **单文件上传** 单文件上传是指将一...

    Java实现网盘文件管理功能,调用阿里oss存储实现

    在开发一个基于Java的网盘文件管理系统时,利用阿里云OSS(Object Storage Service)服务可以极大地提升存储和访问效率。阿里云OSS是一个稳定、安全、高效、易用的云存储服务,适合大规模存储非结构化数据,如图片、...

    Vue Element UI + OSS实现上传文件功能

    本文将详细介绍如何利用Vue.js框架结合Element UI组件库和阿里云OSS(Object Storage Service)服务来实现文件上传的功能。首先,我们了解Vue Element UI提供的upload组件,它是基于Vue 2.0的一个桌面端组件库,用于...

    Spring MVC 图片上传有插件+jsp+后台

    在本文中,我们将深入探讨如何在Spring MVC框架中实现图片上传功能。Spring MVC是一个流行的Java Web开发框架,它提供了一种模块化的方式来构建Web应用程序,包括处理表单数据和文件上传。在这里,我们重点关注如何...

    spring mvc的例子

    Spring MVC 是 Spring 框架的一个模块,专为...通过分析这个例子,我们可以学习如何在Spring MVC中实现文件上传功能,以及如何组织和配置一个完整的Web应用程序。这将有助于提升我们对Spring MVC框架的理解和应用能力。

    java实现上传文件到oss(阿里云)功能示例

    Java 实现上传文件到 OSS(阿里云)的功能示例是指通过 Java 语言实现将文件上传到阿里云对象存储服务(OSS)的功能。本示例主要介绍了 Java 实现上传文件到 OSS 的具体步骤、配置及相关实现技巧。 一、环境准备 ...

Global site tag (gtag.js) - Google Analytics