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

一个虚拟主机多个网站小程序用什么开发

一个虚拟主机多个网站,小程序用什么开发,广东手机网站开发多少,贵州做网站的公司背景 在业务中我们往往需要上传文件如图片#xff0c;文件上传#xff0c;是指将本地图片、视频、音频等文件上传到服务器上#xff0c;可以供其他用户浏览或下载的过程。文件上传在项目中应用非常广泛#xff0c;我们经常发抖音、发朋友圈都用到了文件上传功能。 实现文件…背景 在业务中我们往往需要上传文件如图片文件上传是指将本地图片、视频、音频等文件上传到服务器上可以供其他用户浏览或下载的过程。文件上传在项目中应用非常广泛我们经常发抖音、发朋友圈都用到了文件上传功能。 实现文件上传服务需要有存储的支持那么我们的解决方案将以下几种 直接将图片保存到服务的硬盘springmvc中的文件上传 优点开发便捷成本低缺点扩容困难 使用分布式文件系统进行存储 优点容易实现扩容缺点开发复杂度稍大有成熟的产品可以使用比如FastDFS,MinIO 使用第三方的存储服务例如OSS 优点开发简单拥有强大功能免维护缺点付费 1.定义OSS相关配置 application-dev.yml sky:alioss:endpoint: oss-cn-hangzhou.aliyuncs.comaccess-key-id: LTAI5tPeFLzsPPT8gG3LPW64access-key-secret: U6k1brOZ8gaOIXv3nXbulGTUzy6Pd7bucket-name: sky-take-outapplication.yml spring:profiles:active: dev #设置环境 sky:alioss:endpoint: ${sky.alioss.endpoint}access-key-id: ${sky.alioss.access-key-id}access-key-secret: ${sky.alioss.access-key-secret}bucket-name: ${sky.alioss.bucket-name} 2). 读取OSS配置 在sky-common模块中已定义 package com.sky.properties;import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component;Component ConfigurationProperties(prefix sky.alioss) Data public class AliOssProperties {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketName;}3). 生成OSS工具类对象 在sky-server模块 package com.sky.config;import com.sky.properties.AliOssProperties; import com.sky.utils.AliOssUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;/*** 配置类用于创建AliOssUtil对象*/ Configuration Slf4j public class OssConfiguration {BeanConditionalOnMissingBeanpublic AliOssUtil aliOssUtil(AliOssProperties aliOssProperties){log.info(开始创建阿里云文件上传工具类对象{},aliOssProperties);return new AliOssUtil(aliOssProperties.getEndpoint(),aliOssProperties.getAccessKeyId(),aliOssProperties.getAccessKeySecret(),aliOssProperties.getBucketName());} }其中AliOssUtil.java已在sky-common模块中定义 package com.sky.utils;import com.aliyun.oss.ClientException; import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.OSSException; import lombok.AllArgsConstructor; import lombok.Data; import lombok.extern.slf4j.Slf4j; import java.io.ByteArrayInputStream;Data AllArgsConstructor Slf4j public class AliOssUtil {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketName;/*** 文件上传** param bytes* param objectName* return*/public String upload(byte[] bytes, String objectName) {// 创建OSSClient实例。OSS ossClient new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);try {// 创建PutObject请求。ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(bytes));} catch (OSSException oe) {System.out.println(Caught an OSSException, which means your request made it to OSS, but was rejected with an error response for some reason.);System.out.println(Error Message: oe.getErrorMessage());System.out.println(Error Code: oe.getErrorCode());System.out.println(Request ID: oe.getRequestId());System.out.println(Host ID: oe.getHostId());} catch (ClientException ce) {System.out.println(Caught an ClientException, which means the client encountered a serious internal problem while trying to communicate with OSS, such as not being able to access the network.);System.out.println(Error Message: ce.getMessage());} finally {if (ossClient ! null) {ossClient.shutdown();}}//文件访问路径规则 https://BucketName.Endpoint/ObjectNameStringBuilder stringBuilder new StringBuilder(https://);stringBuilder.append(bucketName).append(.).append(endpoint).append(/).append(objectName);log.info(文件上传到:{}, stringBuilder.toString());return stringBuilder.toString();} }4). 定义文件上传接口 在sky-server模块中定义接口 package com.sky.controller.admin;import com.sky.constant.MessageConstant; import com.sky.result.Result; import com.sky.utils.AliOssUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.util.UUID;/*** 通用接口*/ RestController RequestMapping(/admin/common) Api(tags 通用接口) Slf4j public class CommonController {Autowiredprivate AliOssUtil aliOssUtil;/*** 文件上传* param file* return*/PostMapping(/upload)ApiOperation(文件上传)public ResultString upload(MultipartFile file){log.info(文件上传{},file);try {//原始文件名String originalFilename file.getOriginalFilename();//截取原始文件名的后缀 dfdfdf.pngString extension originalFilename.substring(originalFilename.lastIndexOf(.));//构造新文件名称String objectName UUID.randomUUID().toString() extension;//文件的请求路径String filePath aliOssUtil.upload(file.getBytes(), objectName);return Result.success(filePath);} catch (IOException e) {log.error(文件上传失败{}, e);}return Result.error(MessageConstant.UPLOAD_FAILED);} }
http://www.dnsts.com.cn/news/204139.html

相关文章:

  • 做iframe跳转怎么自适应网站网页规划书怎么写
  • dedecms 把自己的网站添加进去网络营销推广方案步骤
  • 陕西响应式网站建设公司微网站怎么做的好处
  • 快速优化网站建设有没有做电子名片的网站
  • 网站页面框架设计影响用户广告设计与制作就业方向是什么
  • 个人做短视频网站西安工作室
  • 南通市网站建设我的完重庆快建网站
  • 有没关于做动画设计师的网站怎么做网站建设销售
  • 做家乡网站代码章丘做网站哪家强
  • php 禁止电脑访问网站河南省建设厅执业资格注册中心网站
  • 河南公司网站制作咨询网站开发实训周志
  • 兰州做网站改版的公司网页制作人员的工作内容
  • 网站最新域名ip查询接口贵阳网站建设zu97
  • 做一个网站只做前端怎么做如何设置个人网站
  • 微网站 布局租房网站开发报告
  • 建设网站建设安全培训平台网站更换服务器要重新备案吗
  • 苏宁易购网站建设水平百度搜索推广开户
  • 网站服务器部署如何建立购物网站
  • 做外贸大一点的网站天津市住房和城乡建设厅官方网站
  • 哪里有免费的网站模板下载怎么邀约客户做网站
  • 工业和信息化部网站备案系统怎么登录网站开发需求分析内容
  • 广州seo网站推广顾问广州大题小做考研网站
  • 东软 网站群平台建设北京网站建设及app
  • 做个电商网站多少钱口碑好的免费网站建设
  • 网站建设包含哪些建设阶段wordpress手机版边侧导航
  • 无代码建站常用的网络营销方法有哪些
  • 国外上市公司网站建设wordpress 关闭warning
  • 湖北住房和城乡建设部网站wordpress 好用的主题
  • 综合性门户网站有哪些网站设计的用途
  • 四川省建设厅资格注册中心网站国外家居设计网站