`
springcloud关注者
  • 浏览: 311868 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
12d8ea3d-4199-3941-8a17-acd5024729b8
Spring_Cloud构...
浏览量:251127
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

之前给大家介绍了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";
	}

 4. 界面显示效果

 

 

 

 

 

 

 

  • 大小: 267.6 KB
  • 大小: 1.7 MB
  • 大小: 2.4 MB
  • 大小: 36.8 KB
4
0
分享到:
评论

相关推荐

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

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

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

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

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

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

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

    spring MVC 上传 &下载

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

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

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

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

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

    oss文件上传(带回调)

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

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

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

    java spring +flex实现文件上传

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

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

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

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

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

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

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

    spring mvc的例子

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

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

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

    上传oss存储插件

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

Global site tag (gtag.js) - Google Analytics