`
白马探
  • 浏览: 14605 次
社区版块
存档分类
最新评论

Spring mvc+oss存储+fileupload多文件上传实现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实现权限管理文件上传下载

    在本项目中,我们主要探讨的是如何利用一系列技术栈构建一个功能完善的权限管理系统的实现,包括文件上传和下载的功能。这个系统基于Spring Boot框架,结合了Model-View-Controller(MVC)的设计模式,MyBatis作为...

    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,它提供了大规模、安全且高可用的在线存储解决...

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

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

    spring MVC 上传 &下载

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

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

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

    oss文件上传(带回调)

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

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

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

    java spring +flex实现文件上传

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

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

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

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

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

    spring mvc的例子

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

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

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

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

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

    上传oss存储插件

    "上传OSS存储插件"指的是一个能够帮助用户方便地将本地文件或多个文件批量上传至阿里云OSS的工具。这种插件通常集成了OSS的API接口,优化了上传流程,支持并发上传,提高了文件上传的效率。 在实际应用中,使用上传...

    oss实现js上传

    在这种场景下,"oss实现js上传"指的是利用JavaScript实现向OSS服务批量上传文件的功能。这种方法能有效减轻服务器压力,提高上传效率,尤其适合处理大流量、高并发的文件上传需求。 一、OSS服务简介 OSS是云计算的...

    oss存储浏览器查看器,可以在linux系统里查看oss存储使用情况,也可以上传、下载、删除

    **OSS存储浏览器查看器...总的来说,OSS存储浏览器查看器是Linux用户管理阿里云OSS存储的有效工具,通过它,用户可以方便地进行文件的上传、下载、删除等操作,同时监控存储空间的使用情况,确保数据的高效存储和安全。

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

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

Global site tag (gtag.js) - Google Analytics