`
Swifie
  • 浏览: 11268 次
  • 性别: 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.     }  
分享到:
评论

相关推荐

    MTPA数值求解:双法探究,MTPA数值求解详解:两种方法的比较与应用探索,MTPA数值求解两种方法 ,MTPA数值求解; 方法一; 方法二;,MTPA数值求解的两种高效方法

    MTPA数值求解:双法探究,MTPA数值求解详解:两种方法的比较与应用探索,MTPA数值求解两种方法 ,MTPA数值求解; 方法一; 方法二;,MTPA数值求解的两种高效方法

    为什么你的switch总出bug?90%新手不知道的break语句隐藏规则.pdf

    # 踏入C语言的奇妙编程世界 在编程的广阔宇宙中,C语言宛如一颗璀璨恒星,以其独特魅力与强大功能,始终占据着不可替代的地位。无论你是编程小白,还是有一定基础想进一步提升的开发者,C语言都值得深入探索。 C语言的高效性与可移植性令人瞩目。它能直接操控硬件,执行速度快,是系统软件、嵌入式开发的首选。同时,代码可在不同操作系统和硬件平台间轻松移植,极大节省开发成本。 学习C语言,能让你深入理解计算机底层原理,培养逻辑思维和问题解决能力。掌握C语言后,再学习其他编程语言也会事半功倍。 现在,让我们一起开启C语言学习之旅。这里有丰富教程、实用案例、详细代码解析,助你逐步掌握C语言核心知识和编程技巧。别再犹豫,加入我们,在C语言的海洋中尽情遨游,挖掘无限可能,为未来的编程之路打下坚实基础!

    避坑指南:DeepSeekAPI常见错误代码解析与解决方案.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    视频缩略图生成组件,图像格式转换另存为jpg, png, gif, bmp格式

    'Function 生成视频缩略图(ByVal 视频文件 As String, ByVal 保存缩略图的文件路径 As String, Optional ByVal jpg图像品质 As Long = 80, _ ' Optional ByVal 缩略图宽度 As Long = 500, Optional ByVal 缩略图高度 As Long = 500 _ ' , Optional 返回图像实际宽度 As Long, Optional 返回图像实际高度 As Long) As Boolean Public Function SaveImageAs(LoadImgFile As String, ByVal SaveAsImgFile As String, _ Optional ByVal JpgQuality As Long = 80, Optional hPal As Long, Optional Resolution As Single) As Boolean

    浏览器插件开发:基于DeepSeekAPI的沉浸式翻译工具实战.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    bkall_answers(2).json

    bkall_answers(2).json

    从零实现多轮对话:DeepSeek上下文推理模式开发手册.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    安全防护全攻略:DeepSeekAPI密钥管理与请求限流最佳实践.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    实时对话系统构建:WebSocket长连接下的API稳定性保障方案.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    结构化输出进阶指南:深度解析DeepSeekAPI响应数据处理技巧.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    清华出品AI教程(15天熟练掌握DeepSeek)

    近日,一份由清华大学团队发布《DeepSeek:从入门到精通》的AI学习教程冲上了热搜,它是由清华大学新闻与传播学院新媒体研究中心元宇宙文化实验室的余梦珑博士后及其团队倾力打造,从三个方面深入剖析了DeepSeek,DeepSeek是什么?有什么用?怎么使用? 详细论述了其应用场景与使用方法,并讲解了如何通过设计精妙的提示语来提升AI的使用效率,以及丰富的实例干货。 全部104页,完整版资料已经帮大家整理好了,免费领取 资料链接: https://pan.quark.cn/s/be3b500c539c

    异常处理大全:DeepSeekAPI调用中的10个常见错误与修复方案.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    冰点下载器珍藏版.zip

    冰点下载器珍藏版.zip

    Wallpaper Engine 壁纸一键提取

    Wallpaper Engine 是一款广受欢迎的动态壁纸软件,允许用户将各种动态、交互式壁纸应用到桌面上。其丰富的创意工坊内容让用户可以轻松下载和分享个性化的壁纸。而“一键提取”功能则是 Wallpaper Engine 中一个非常实用的工具,能够帮助用户快速提取和保存壁纸资源,方便后续使用或分享。

    基于碳达峰碳中和战略目标的城市园林绿化碳汇系统建设.pdf

    科研人员

    成本降低90%!DeepSeek与LangChain联动的API调用效率优化实验.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    13考试真题最近的t66.txt

    13考试真题最近的t66.txt

    对外承包项目借款合同2[示范文本].doc

    对外承包项目借款合同2[示范文本].doc

    性能对比测评:DeepSeek-V3与GPT-4接口的响应速度实测.pdf

    在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!

    基于java捷邻小程序.zip

    借助java编程语言和MySQL数据库等实现系统的全部功能,接下来对系统进行测试,测试系统是否有漏洞和测试用户权限来完善系统,最终系统完成达到相关标准。 本系统主要包括管理员和用户两个角色;主要包括首页、个人中心、用户管理、商品分类管理、商品信息管理、促销产品管理、系统管理、订单管理等功能的管理系统。 系统权限按管理员和用户这两类涉及用户划分。 (1)管理员功能需求 管理员登陆后,主要包括首页、个人中心、用户管理、商品分类管理、商品信息管理、促销产品管理、系统管理、订单管理等功能。 2)用户功能需求 用户登陆后进入小程序首页,可以实现首页、商品信息、促销产品、购物车、我的等,在我的页面可以对个人中心、我的收藏管理、用户充值、购物车、我的订单等功能进行详细操作。

Global site tag (gtag.js) - Google Analytics