怎么在四川建设厅网站上进行劳务合同备案阜阳网站制作公司去哪找

pingmian/2025/10/8 22:55:31/文章来源:
怎么在四川建设厅网站上进行劳务合同备案,阜阳网站制作公司去哪找,建设一个网络平台要多少钱,前端只是做网站吗minio docker spring boot实现文件上传与下载 1.在linux上安装并启动docker2.在docker中拉取minio并启动3.Spring Boot 整合 minio4.测试 minio 文件上传、下载及图片预览等功能 1.在linux上安装并启动docker 检查linux内核#xff0c;必须是3.10以上 uname ‐r安装docker… minio docker spring boot实现文件上传与下载 1.在linux上安装并启动docker2.在docker中拉取minio并启动3.Spring Boot 整合 minio4.测试 minio 文件上传、下载及图片预览等功能 1.在linux上安装并启动docker 检查linux内核必须是3.10以上 uname ‐r安装docker yum install docker启动docker systemctl start docker2.在docker中拉取minio并启动 搜索镜像 docker search minio拉取镜像 docker pull minio/minio启动minio docker run -p 9000:9000 -p 9090:9090 --name minio \-d --restartalways \-e MINIO_ACCESS_KEYvinci \-e MINIO_SECRET_KEY123456\-v /usr/local/minio/data:/data \-v /usr/local/minio/config:/root/.minio \minio/minio server /data --console-address :9000 --address :9090-p: 指定端口映射格式为主机端口:容器端口 (这里注意要映射两个否则API会访问不到) -e “MINIO_ROOT_USERvinci” minio用户名 -e MINIO_SECRET_KEY123456 minio 密码 -d: 后台运行容器并返回容器ID -v: 绑定一个卷 这里可以看到minio已经在docker里启动起来了 接下来我们可以通过以下命令来查看 minio console和minio api 访问端口 docker logs minio访问minio控制台 在此步骤前记得开放端口号 我们接下来可以使用密码和账号登录minio控制台了 3.Spring Boot 整合 minio 在此之前我们可以先通过控制台来创建一个bucket 集成minio dependencygroupIdio.minio/groupIdartifactIdminio/artifactIdversion8.4.0/version /dependency编写minio配置类 /*** package: com.vinci.minio.config* className: MinioConfig* author: Vinci* description: minio配置类* date: 2023/10/27 13:10*/ Data Configuration ConfigurationProperties(prefix minio) public class MinioConfig {private String endpoint;private String accessKey;private String secretKey;private String bucketName;Beanpublic MinioClient minioClient(){return MinioClient.builder().endpoint(endpoint).credentials(accessKey, secretKey).build();}}在application.properties中添加以下配置 minio.endpointhttp://108.13.21.28:9090/ minio.bucket-nameimages minio.access-keyxxxxx minio.secret-keyxxxxx注意 minio.endpoint 是minio API地址不是控制台地址 minio.bucket-name 是 bucket的名称 minio.access-key 是用户名 minio.secret-key是密码 编写minio工具类 package com.vinci.minio.utils;import com.vinci.minio.config.MinioConfig; import io.minio.*; import io.minio.http.Method; import io.minio.messages.Bucket; import io.minio.messages.Item; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.util.FastByteArrayOutputStream; import org.springframework.web.multipart.MultipartFile;import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID;/*** description: minio工具类* author: Vinci* date: 2023/10/27 13:23**/ Component Slf4j public class MinioUtil {Resourceprivate MinioConfig config;Resourceprivate MinioClient minioClient;/*** description: 查看存储bucket是否存在* author: Vinci* date: 2023/10/27 13:24* param bucketName 要查看的bucket名称* return 存在即返回true**/public Boolean bucketExists(String bucketName) {try {return minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());} catch (Exception e) {log.error(发现异常,e);return false;}}/*** description: 创建存储bucket* author: Vinci* date: 2023/10/27 13:24* param bucketName 要创建的bucket名称* return 创建成功即返回true**/public Boolean makeBucket(String bucketName) {try {minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());return true;} catch (Exception e) {log.error(发现异常,e);return false;}}/*** description: 删除存储bucket* author: Vinci* date: 2023/10/27 13:24* param bucketName 要删除的bucket名称* return 删除成功即返回true**/public Boolean removeBucket(String bucketName) {try {minioClient.removeBucket(RemoveBucketArgs.builder().bucket(bucketName).build());return true;} catch (Exception e) {log.error(发现异常,e);return false;}}/*** description: 获取全部bucket* author: Vinci* date: 2023/10/27 13:24* return 返回bucket结果集**/public ListBucket getAllBuckets() {try {return minioClient.listBuckets();} catch (Exception e) {log.error(发现异常,e);return null;}}/*** description: 文件上传* author: Vinci* date: 2023/10/27 13:24* param file 表单上传的文件* return 返回文件上传的路径**/public String upload(MultipartFile file) {String originalFilename file.getOriginalFilename();if (originalFilename null || originalFilename.isEmpty()){throw new RuntimeException();}String fileName UUID.randomUUID() originalFilename.substring(originalFilename.lastIndexOf(.));String objectName new SimpleDateFormat(yyyyMM).format(new Date()) / fileName;try {PutObjectArgs objectArgs PutObjectArgs.builder().bucket(config.getBucketName()).object(objectName).stream(file.getInputStream(), file.getSize(), -1).contentType(file.getContentType()).build();minioClient.putObject(objectArgs);return objectName;} catch (Exception e) {log.error(发现异常,e);return null;}}/*** description: 预览图片* author: Vinci* date: 2023/10/27 13:24* param fileName 文件在bucket中的全路径* return 返回文件的浏览路径**/public String preview(String fileName){// 查看文件地址GetPresignedObjectUrlArgs build GetPresignedObjectUrlArgs.builder().bucket(config.getBucketName()).object(fileName).method(Method.GET).build();try {return minioClient.getPresignedObjectUrl(build);} catch (Exception e) {log.error(发现异常,e);return null;}}/*** description: 文件下载* author: Vinci* date: 2023/10/27 13:24* param fileName 文件在bucket中的全路径**/public void download(String fileName, HttpServletResponse res) {GetObjectArgs objectArgs GetObjectArgs.builder().bucket(config.getBucketName()).object(fileName).build();try (GetObjectResponse response minioClient.getObject(objectArgs)){byte[] buf new byte[1024];int len;try (FastByteArrayOutputStream os new FastByteArrayOutputStream()){while ((lenresponse.read(buf))!-1){os.write(buf,0,len);}os.flush();byte[] bytes os.toByteArray();res.setCharacterEncoding(utf-8);res.setContentType(application/force-download);res.addHeader(Content-Disposition, inline;fileName fileName);try (ServletOutputStream stream res.getOutputStream()){stream.write(bytes);stream.flush();}}} catch (Exception e) {log.error(发现异常,e);}}/*** description: 查看文件对象* author: Vinci* date: 2023/10/27 13:24* return 存储bucket内文件对象信息**/public ListItem listObjects() {IterableResultItem results minioClient.listObjects(ListObjectsArgs.builder().bucket(config.getBucketName()).build());ListItem items new ArrayList();try {for (ResultItem result : results) {items.add(result.get());}return items;} catch (Exception e) {log.error(发现异常,e);return null;}}/*** description: 删除文件信息* author: Vinci* date: 2023/10/27 13:24* return 删除成功则返回true**/public boolean remove(String fileName){try {minioClient.removeObject(RemoveObjectArgs.builder().bucket(config.getBucketName()).object(fileName).build());return true;}catch (Exception e){log.error(发现异常,e);return false;}}} 4.测试 minio 文件上传、下载及图片预览等功能 编写controller通过接口的方式来测试minio功能 package com.vinci.minio.controller;import com.vinci.minio.utils.MinioUtil; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile;import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse;/*** package: com.vinci.minio.controller* className: TestMinioController* author: Vinci* description: 测试minio* date: 2023/10/27 13:48*/ Controller RequestMapping(value /minio) public class TestMinioController {Resourceprivate MinioUtil minioUtil;/*** description: 文件上传测试* author: Vinci* date: 2023/10/27 13:48**/ResponseBodyPostMapping(/upload)public String fileUpload(MultipartFile file) {return minioUtil.upload(file);}/*** description: 文件下载测试* author: Vinci* date: 2023/10/27 13:51**/ResponseBodyGetMapping(/download)public String fileDownload(String fileName, HttpServletResponse response){minioUtil.download(fileName,response);return success;}/*** description: 图片预览* author: Vinci* date: 2023/10/27 13:53**/GetMapping(/preview)public String imagePreview(String fileName){return minioUtil.preview(fileName);}} 测试文件上传 使用postMan来调用文件上传的接口 我们返回控制台可以看到文件已经上传上去了 测试文件下载 我们借助postman工具点击发送并下载可以看到文件下载成功了 图片在线预览 我们同样借助postman工具发送请求我们可以看到返回了图片的在线浏览地址点击即可在线浏览图片 以上便是minio 整合springboot的全部流程了感谢阅读 SpringBoot案例地址https://gitee.com/vinci99/springboot-minio-test.git

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/89148.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dedecms本地调试好的网站怎么上传到服务器音乐网站开发思路

题目 我看了一下,这个题目应该不是什么机密,所以先放上来了。大概意思是根据合同信息生成交租阶段信息。 解答 要求是要使用 Ruby 生成交租阶段信息,由于时间比较仓促,变量名那些就用得随意了些。要点主要有下面这些&#xff1a…

东莞金融网站建设dz网站收款即时到账怎么做的

文章目录题目描述数据范围解析代码题目描述 你要维护一个向量集合&#xff0c;支持以下操作&#xff1a; 插入一个向量 。 删除插入的第 x 个向量。 查询当前集合与(x,y)(x,y)(x,y) 点积的最大值是多少。如果当前是空集输出0。 数据范围 n<2e5,x、y∈[1,2e6]n<2e5,x、y∈…

深圳做网站乐云seo598提升wordpress访问速度

依赖注入&#xff08;Dependency Injection&#xff0c;DI&#xff09;通过第三方配置初始化对象&#xff0c;而不是把具体的实现写在对象中&#xff0c;这样程序入口与具体实现进行了解耦。比如动作定义为接口&#xff0c;具体做什么动作 由实现动作接口的类来具体描述。 面向…

优秀电商网站设计优化seo是什么意思

目录核心分析内容1、学什么1.1、Android基础 & 常用1.2、Android进阶1.3、与时俱进、热门技术1.4、编程语言&#xff1a;Java与Java虚拟机1.5、计算机基础1.6、总结2、怎么学2.1、学习路径&#xff1a;如何循序渐进、阶段性的学习Android的理论知识&#xff1f;2.2、获取途…

网站建设用哪个网站服务器安全防护

文章目录 文章地址网络各层结构代码实现 文章地址 An End-to-End Traffic Visibility Regression Algorithm文章通过训练搜集得到的真实道路图像数据集&#xff08;Actual Road dense image Dataset, ARD&#xff09;&#xff0c;通过专业的能见度计和多人标注&#xff0c;获得…

廊坊市做网站的公司有哪些wordpress上传完主题

Google Doc 示例&#xff1a;https://jsfiddle.net/7xr419yb/ Microsoft Office 示例&#xff1a;https://jsfiddle.net/gcuzq343/转载于:https://www.cnblogs.com/alexguoyihao/p/10314626.html

微信公众号网站导航怎么做各地网站备案

class Solution { public:string crackPassword(vector<int>& password) { //在比较两个字符串大小时&#xff0c;其实是按照字典序逐个比较它们的字符。首先比较两个字符串的第一个字符&#xff0c;如果它们不相等&#xff0c;则可以根据它们的 ASCII 码大小确定它们…

展示型网站有哪些nginx建设网站教程

添加目录 选择一种格式的自动目录 更新目录 发现该目录中只有1、2章&#xff0c;3、4章 然后再点击更新目录 对应的&#xff0c;小标题添加二级目录

简约、时尚、高端 网站建设wordpress 插件手机

JPA Buddy快速创建update、find、count、delete、exists方法&#xff0c;JPA默认提供的CrudRepository\JpaRepository提供的方法比较少&#xff0c;一般我们会手写一些方法&#xff0c;这里我们选择通过JPA Buddy快速生成&#xff0c;之前文章中讲到了JPA Buddy原本是IDEA收费插…

企业网站客户案例wordpress作者关注功能怎么实现

网络以太网之(1)基础概念 Author: Once Day Date: 2024年4月1日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文档可参考专栏&#xff1a;通信网络技术_Once-Day的…

交网站建设域名计入什么科目网站建设是什么意思

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;前端高频面试题 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 高频前端面试题--Vue3.0篇 什么是TypeScript&#xff1f;TypeScript数据类型TypeScript中命名空…

建设银行六安分行网站门户网站 建设 如何写

在IDLE中&#xff0c;使用菜单栏中的“Debug”对IDLE打开的python程序进行调试。 1 打开调试开关 选择IDLE菜单栏的“Debug->Debugger”&#xff0c;如图1①所示&#xff1b;此时在IDLE中会显示“[DEBUG ON]”&#xff0c;即“调试模式已打开”&#xff0c;如图1②所示&am…

苏州网站建设代理渠道网站宣传的优点

关注我&#xff0c;紧跟本系列专栏文章&#xff0c;咱们下篇再续&#xff01; 作者简介&#xff1a;魔都技术专家兼架构&#xff0c;多家大厂后端一线研发经验&#xff0c;各大技术社区头部专家博主&#xff0c;编程严选网创始人。具有丰富的引领团队经验&#xff0c;深厚业务架…

网站图片设置4:3网页游戏知乎

2019独角兽企业重金招聘Python工程师标准>>> http://baike.baidu.com/link?url3Ej1VIItwWd35sXeoRWRhcJkJLCFvzPzNIoTkAfai8ZIS4Ppcch4_maQ25FjNCU1Eplsp4k3oPKLyv6VIsPhsq 一、 最大似然法是一种具有理论性的点估计法&#xff0c;基本思想是&#xff0c;当从模型…

鲜花网站建设项目概述网站建站公司有必要做吗

文章目录 0 前言2 什么是图像内容填充修复3 原理分析3.1 第一步&#xff1a;将图像理解为一个概率分布的样本3.2 补全图像 3.3 快速生成假图像3.4 生成对抗网络(Generative Adversarial Net, GAN) 的架构3.5 使用G(z)生成伪图像 4 在Tensorflow上构建DCGANs最后 0 前言 &#…

嘉兴制作网站软件网络游戏设计是干什么的

actionmailer 3.0 结合ar_mailer_rails3 异步发送邮件3 次投票jerry 分享于 3 个月 前, 0 条回复, 244 次浏览Share|actionmailer 3.0 的用法有所改进&#xff0c;并结合ar_mailer_rails3做异步邮件的发送&#xff0c;是比较方便的一种选择&#xff0c;把邮件都交给后台任务来发…

手机手机端网站建设系统软件开发服务

推荐阅读&#xff1a;Spring全家桶笔记&#xff1a;SpringSpring BootSpring CloudSpring MVC疫情期间“闭关修炼”&#xff0c;吃透这本Java核心知识&#xff0c;跳槽面试不心慌2020“闭关”跳槽季&#xff0c;啃透分布式三大技术&#xff1a;限流、缓存、通讯基本环境开发工具…

淄博找能做网站的公司江苏大汉建设实业集团网站

整数和浮点数在内存中的存储方式是不一样的&#xff0c;今天&#xff0c;我们来具体学习一下 文章目录 整数在内存中的存储浮点数在内存中的存储 整数在内存中的存储 我们在之前就已经了解过了整数有原码&#xff0c;反码&#xff0c;补码的形式&#xff0c;这三种方式都是二进…

东盟建设投资有限公司网站软文广告图片

文章目录 总结Hackergame2023更深更暗组委会模拟器猫咪小测标题HTTP集邮册Docker for everyone惜字如金 2.0Git? Git!高频率星球低带宽星球小型大语言模型星球旅行日记3.0JSON ⊂ YAML? 总结 最近看到科大在举办CTF比赛&#xff0c;刚好我学校也有可以参加&#xff0c;就玩了…

企业网站制作简介百度seo查询系统

转载&#xff1a;https://www.cnblogs.com/ccdev/archive/2012/12/19/2825355.html 废话不多说&#xff0c;常用的代码积淀下来。 一、懒汉模式&#xff1a;即第一次调用该类实例的时候才产生一个新的该类实例&#xff0c;并在以后仅返回此实例。 需要用锁&#xff0c;来保证其…