当前位置: 首页 > news >正文

手机网站打开微信支付功能大连企业建站系统模板

手机网站打开微信支付功能,大连企业建站系统模板,怎样购买起名软件自己做网站,网站推广的工具什么是minio MinIO是一个基于Go实现的高性能、兼容S3协议的对象存储。它采用GNU AGPL v3开源协议#xff0c;项目地址是https://github.com/minio/minio。 引用官网#xff1a; MinIO是根据GNU Affero通用公共许可证v3.0发布的高性能对象存储。它与Amazon S3云存储服务兼容…什么是minio MinIO是一个基于Go实现的高性能、兼容S3协议的对象存储。它采用GNU AGPL v3开源协议项目地址是https://github.com/minio/minio。 引用官网 MinIO是根据GNU Affero通用公共许可证v3.0发布的高性能对象存储。它与Amazon S3云存储服务兼容。使用MinIO构建用于机器学习分析和应用程序数据工作负载的高性能基础架构。 官网地址 https://min.io/ 文档地址 https://docs.min.io/ 一. 使用docker 搭建minio 服务 GNU / Linux和macOS docker run -p 9000:9000 \   --name minio1 \   -v /mnt/data:/data \   -e MINIO_ROOT_USERAKIAIOSFODNN7EXAMPLE \   -e MINIO_ROOT_PASSWORDwJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY \   minio/minio server /data windows docker run -p 9000:9000 \   --name minio1 \   -v D:\data:/data \   -e MINIO_ROOT_USERAKIAIOSFODNN7EXAMPLE \   -e MINIO_ROOT_PASSWORDwJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY \   minio/minio server /data MINIO_ROOT_USER为用户key MINIO_ROOT_PASSWORD为用户密钥 以上搭建的都是单机版的。想要了解分布式 的方式请查看官网文档。 这就是在win的docker上运行的。 更多开源项目https://www.yoodb.com/projects/springboot-user-manger.html 当启动后在浏览器访问http://localhost:9000就可以访问minio的图形化界面了如图所示 二. 下面开始搭建springboot 环境 初始化一个springboot项目大家都会这里不多做介绍。 主要是介绍需要引入的依赖 !-- thymeleaf模板渲染引擎--  dependency            groupIdorg.springframework.boot/groupId            artifactIdspring-boot-starter-thymeleaf/artifactId        /dependency!-- 操作minio的java客户端--         dependency            groupIdio.minio/groupId            artifactIdminio/artifactId            version8.2.1/version        /dependency!-- lombok插件--         dependency            groupIdorg.projectlombok/groupId            artifactIdlombok/artifactId            optionaltrue/optional        /dependency依赖可以官方文档里找https://docs.min.io/docs/java-client-quickstart-guide.html 下面介绍配置文件 spring:   servlet:     multipart:       max-file-size: 10MB       max-request-size: 10MB *#minio配置*   minio:     access-key: AKIAIOSFODNN7EXAMPLE      *#key就是docker初始化是设置的密钥相同*     secret-key: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY     url: http://localhost:9000     bucket-name: wdhcr   thymeleaf:     cache: false 创建minio的配置类: Configuration ConfigurationProperties(prefix  “spring.minio”) Data public class MinioConfiguration {     private String accessKey; private String secretKey; private String url; private String bucketName; Bean     public MinioClient minioClient() {         return MinioClient.builder()                 .endpoint(url)                 .credentials(accessKey, secretKey)                 .build();     } } 使用配置属性绑定进行参数绑定,并初始化一个minio client对象放入容器中。 下面就是我封装的minio client 操作minio的简单方法的组件。 Component public class MinioComp { Autowired     private MinioClient minioClient; Autowired     private MinioConfiguration configuration; /**      * description: 获取上传临时签名公众 号Java精选      * dateTime: 2021/5/13 14:12      */     public Map getPolicy(String fileName, ZonedDateTime time) {         PostPolicy postPolicy  new PostPolicy(configuration.getBucketName(), time);         postPolicy.addEqualsCondition(“key”, fileName);         try {             MapString, String map  minioClient.getPresignedPostFormData(postPolicy);             HashMapString, String map1  new HashMap();             map.forEach((k,v)-{                map1.put(k.replaceAll(“-”,“”),v);            });             map1.put(“host”,configuration.getUrl()“/”configuration.getBucketName());             return map1;         } catch (ErrorResponseException e) {             e.printStackTrace();         } catch (InsufficientDataException e) {             e.printStackTrace();         } catch (InternalException e) {             e.printStackTrace();         } catch (InvalidKeyException e) {             e.printStackTrace();         } catch (InvalidResponseException e) {             e.printStackTrace();         } catch (IOException e) {             e.printStackTrace();         } catch (NoSuchAlgorithmException e) {             e.printStackTrace();         } catch (ServerException e) {             e.printStackTrace();         } catch (XmlParserException e) {             e.printStackTrace();         }         return null;     } /**      * description: 获取上传文件的url公众 号Java精选有惊喜      * dateTime: 2021/5/13 14:15      */     public String getPolicyUrl(String objectName, Method method, int time, TimeUnit timeUnit) {         try {             return minioClient.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder()                     .method(method)                     .bucket(configuration.getBucketName())                     .object(objectName)                     .expiry(time, timeUnit).build());         } catch (ErrorResponseException e) {             e.printStackTrace();         } catch (InsufficientDataException e) {             e.printStackTrace();         } catch (InternalException e) {             e.printStackTrace();         } catch (InvalidKeyException e) {             e.printStackTrace();         } catch (InvalidResponseException e) {             e.printStackTrace();         } catch (IOException e) {             e.printStackTrace();         } catch (NoSuchAlgorithmException e) {             e.printStackTrace();         } catch (XmlParserException e) {             e.printStackTrace();         } catch (ServerException e) {             e.printStackTrace();         }         return null;     } /**      * description: 上传文件      * dateTime: 2021/5/13 14:17      /     public void upload(MultipartFile file, String fileName) {         // 使用putObject上传一个文件到存储桶中。         try {             InputStream inputStream  file.getInputStream();             minioClient.putObject(PutObjectArgs.builder()                     .bucket(configuration.getBucketName())                     .object(fileName)                     .stream(inputStream, file.getSize(), -1)                     .contentType(file.getContentType())                     .build());         } catch (ErrorResponseException e) {             e.printStackTrace();         } catch (InsufficientDataException e) {             e.printStackTrace();         } catch (InternalException e) {             e.printStackTrace();         } catch (InvalidKeyException e) {             e.printStackTrace();         } catch (InvalidResponseException e) {             e.printStackTrace();         } catch (IOException e) {             e.printStackTrace();         } catch (NoSuchAlgorithmException e) {             e.printStackTrace();         } catch (ServerException e) {             e.printStackTrace();         } catch (XmlParserException e) {             e.printStackTrace();         }     }   /*      * description: 根据filename获取文件访问地址      * dateTime: 2021/5/17 11:28      */     public String getUrl(String objectName, int time, TimeUnit timeUnit) {         String url  null;         try {             url  minioClient.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder()                     .method(Method.GET)                     .bucket(configuration.getBucketName())                     .object(objectName)                     .expiry(time, timeUnit).build());         } catch (ErrorResponseException e) {             e.printStackTrace();         } catch (InsufficientDataException e) {             e.printStackTrace();         } catch (InternalException e) {             e.printStackTrace();         } catch (InvalidKeyException e) {             e.printStackTrace();         } catch (InvalidResponseException e) {             e.printStackTrace();         } catch (IOException e) {             e.printStackTrace();         } catch (NoSuchAlgorithmException e) {             e.printStackTrace();         } catch (XmlParserException e) {             e.printStackTrace();         } catch (ServerException e) {             e.printStackTrace();         }         return url;     } } 简单说明 使用MultipartFile接收前端文件流再上传到minio。 构建一个formData的签名数据给前端让前端之前上传到minio。 构建一个可以上传的临时URL给前端前端通过携带文件请求该URL进行上传。 使用filename请求服务端获取临时访问文件的URL。最长时间为7 天想要永久性访问需要其他设置这里不做说明。 推荐公众 号Java精选回复java面试获取面试资料支持在线刷题。 下面展示页面html使用的是VUEelement-ui进行渲染。 上传图片 传统上传                                                                        将文件拖到此处或 点击上传                          只能上传jpg/png文件且不超过500kb                                                                                                                       前端formData直传                                                                        将文件拖到此处或 点击上传                          只能上传jpg/png文件且不超过500kb                                                                                                                       前端Url直传                                                                        将文件拖到此处或 点击上传                          只能上传jpg/png文件且不超过500kb                                                                                                                       uploadHandle(options) {                 let {file}  options;                 this.traditionPost(file);             },             traditionPost(file) {                 _that  this                 const form  new FormData();                 form.append(“fileName”, file.name);                 form.append(“file”, file);                 this.axiosPost(“post”, “/upload”, form).then(function (res) {                     if (res.status  200) {                         _that.imgUrl  res.data.data                     } else {                         alert(“上传失败”)                     }                 })             },             getpolicy(file) {                 _that  this                 axios.get(‘policy?fileName’  file.name)                     .then(function (response) {                         let {xamzalgorithm, xamzcredential, policy, xamzsignature, xamzdate, host}  response.data.data;                         let formData  new FormData();                         formData.append(“key”, file.name);                         formData.append(“x-amz-algorithm”, xamzalgorithm);  // 让服务端返回200不设置则默认返回204。                         formData.append(“x-amz-credential”, xamzcredential);                         formData.append(“policy”, policy);                         formData.append(“x-amz-signature”, xamzsignature);                         formData.append(“x-amz-date”, xamzdate);                         formData.append(“file”, file);                         // 发送 POST 请求                         _that.axiosPost(“post”, host, formData).then(function (res) {                             if (res.status  204) {                                 axios.get(‘url?fileName’  file.name).then(function (res) {                                     _that.directUrl  res.data.data;                                 })                             } else {                                 alert(“上传失败”)                             }                         })                     })             },             httpRequestHandle(options) {                 let {file}  options;                 this.getpolicy(file);             }, UrlUploadHandle(options) {                 let {file}  options;                 this.getUploadUrl(file);             },             getUploadUrl(file) {                 _that  this                 console.log(file)                 axios.get(‘uploadUrl?fileName’  file.name)                     .then(function (response) {                         let url  response.data.data;                         // 发送 put 请求                         let config  {‘Content-Type’: file.type}                         _that.axiosPost(“put”, url, file, config).then(function (res) {                             if (res.status  200) {                                 axios.get(‘url?fileName’  file.name).then(function (res) {                                     _that.uploadUrl  res.data.data;                                 })                             } else {                                 alert(“上传失败”)                             }                         })                     })             },             //封装             //axios封装post请求             axiosPost(method, url, data, config) {                 let result  axios({                     method: method,                     url: url,                     data: data,                     headers: config                 }).then(resp  {                     return resp                 }).catch(error  {                     return “exception”  error;                 });                 return result;             } }     }) 页面的效果就如上图所示。 可以分别体验不同的实现效果。 以上就是使用springboot搭建基于minio的高性能存储服务的全部步骤了。 本项目地址: https://gitee.com/jack_whh/minio-upload 作者HUWD https://blog.csdn.net/weixin_45089791/article/details/116921075/
http://www.zqtcl.cn/news/803413/

相关文章:

  • 长春电商网站建设报价北京创意设计协会网站
  • 企业3合1网站建设公司加强政协网站建设
  • 专业做互联网招聘的网站有哪些内容百度搜索引擎推广收费标准
  • 物流网站开发系统论文怎么知道网站程序是什么做的
  • 湖南高端网站制作公php网站后台
  • 建好的网站在哪里wordpress部署到git
  • 浙江坤宇建设有限公司网站毕业设计 旅游网站建设
  • 做网站月收入多少视频短视频api
  • 泰安网站建设哪家强网站流量指标
  • 网站毕业设计开题报告wordpress账户密码忘记
  • 做网站学费多少钱0基础学app程序开发
  • 忻州建站公司辽宁省建设执业信息网官网
  • 北京网站建设 云智互联集安网站建设
  • 无锡市建设培训中心网站私人订制软件平台
  • 宁波网站设计推荐荣盛网络招远网站制作
  • 网站开发维护运维室内设计师怎么找
  • 网站建设如何增加二级页面学网络工程好找工作吗
  • 网站设计的研究方法有哪些wordpress样式路径
  • 网站建设与网页设计...南通网站seo报价
  • 网站开发毕业设计说明书范文关键词排名代做
  • 本地环境建设网站南通网站制作怎样
  • 注册公司多少钱不用交税南昌seo网站推广费用
  • 网站建设与运营的论文的范本wordpress弹框登陆
  • 阿里云做的网站空间动画制作器
  • 徐州企业网站建设做视频网站需要多少上传
  • 记事本做网站怎么加背景图网站开发需要哪些人怎么分工
  • 南宁网站建设找哪家网站被k换域名
  • spring mvc 网站开发网站开发与管理所对应的职位及岗位
  • 国内做视频的网站有哪些宁波网站制作与推广
  • 织梦软件展示网站源码建设工程竣工验收消防备案网站