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

北京优秀网站建设北京seo网络优化师

北京优秀网站建设,北京seo网络优化师,家政公司管理系统,新闻网站做服务文章目录 配置1. 部署MinIO服务2. 整合SpringBoot 功能实现1. 文件上传2. 文件下载 总结 配置 1. 部署MinIO服务 这里以docker为例: 安装minio命令docker run -p 9000:9000 -p 9001:9001 \ --name minio \ -v /path/to/data:/data \ -e "MINIO_ROOT_USERmin…

文章目录

  • 配置
    • 1. 部署MinIO服务
    • 2. 整合SpringBoot
  • 功能实现
    • 1. 文件上传
    • 2. 文件下载
  • 总结

配置

1. 部署MinIO服务

这里以docker为例:

  1. 安装minio命令
    docker run -p 9000:9000 -p 9001:9001 \
    --name minio \
    -v /path/to/data:/data \
    -e "MINIO_ROOT_USER=minioadmin" \
    -e "MINIO_ROOT_PASSWORD=minioadmin" \
    minio/minio server /data --console-address ":9001"
    
    表示MinIO 的 API 服务默认运行在 9000 端口,并且映射到容器的9000端口
    MinIO 的控制台(Web UI)默认运行在 9001 端口。
    注意:服务器部署记得开放9000和9001端口。
  2. 登录MinIO的ui控制台“ip+端口号”
    得到如下界面,输入配置的用户名和密码,也就是docker run命令中的
    -e "MINIO_ROOT_USER=minioadmin" \
    -e "MINIO_ROOT_PASSWORD=minioadmin" \
    
    在这里插入图片描述

2. 整合SpringBoot

  1. maven依赖:
    <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.5.14</version>
    </dependency>
    
  2. application.yaml
    minio:endpoint: http://你部署minio服务的ip地址:9000 # MinIO 服务器地址access-key: minioadmin          # 访问密钥secret-key: minioadmin          # 秘密密钥bucket: test            # 默认存储桶名称
    
  3. MinIO配置类
    import io.minio.MinioClient;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;@Configuration
    public class MinioConfig {@Value("${minio.endpoint}")private String endpoint;@Value("${minio.access-key}")private String accessKey;@Value("${minio.secret-key}")private String secretKey;@Beanpublic MinioClient minioClient() {return MinioClient.builder().endpoint(endpoint).credentials(accessKey, secretKey).build();}
    }
    

功能实现

以为文件上传、下载为例:

1. 文件上传

  1. controller层

    @RestController
    @RequestMapping("/file/")
    public class FileController {@Autowiredprivate FileService fileService;/*** 文件上传* @param file* @param fileName*/@PostMapping("upload")public Result uploadFile(@RequestParam("file") MultipartFile file, @RequestParam("fileName") String fileName){String msg = fileService.uploadFile(file, fileName);return Result.success(msg);}
    
  2. service层

    public interface FileService {String uploadFile(MultipartFile file, String fileName);
    }
    
    @Service
    public class FileServiceImpl implements FileService {@Autowiredprivate MinioClient minioClient;@Value("${minio.bucket}")private String bucketName;/*** 文件上传* @param file 需要上传的文件* @param fileName 文件在 minio 中存储的名称*/@Overridepublic String uploadFile(MultipartFile file, String fileName) {try {//MultipartFile 转换为 InputStream,以便 MinIO 客户端可以读取文件内容InputStream inputStream = file.getInputStream();//将文件上传到 MinIO 服务器minioClient.putObject(PutObjectArgs.builder().bucket(bucketName)//文件存储的存储桶名称.object(fileName).stream(inputStream, file.getSize(), -1)//文件大小, partSize设置为 -1,MinIO 会使用默认的分块大小(通常是 5MB)进行上传。.contentType(file.getContentType())//文件的 MIME 类型.build());}catch (Exception e){return "文件上传失败";}return "文件上传成功";}
    }
    
  3. 测试结果:
    在这里插入图片描述
    在ui界面中可以查看到上传的文件:
    在这里插入图片描述

2. 文件下载

  1. controller层:

    @RestController
    @RequestMapping("/file/")
    public class FileController {@Autowiredprivate FileService fileService;/*** 文件下载* @param fileName* @return*/@GetMapping("download/{fileName}")public Result downloadFile(@PathVariable String fileName, HttpServletResponse response) throws IOException {InputStream inputStream = fileService.downloadFile(fileName);response.setContentType("application/octet-stream");response.setHeader("Content-Disposition", "attachment; fileName" + fileName);IOUtils.copy(inputStream, response.getOutputStream());response.flushBuffer();return Result.success();}
    }
    
  2. service层:

    public interface FileService {InputStream downloadFile(String fileName);
    }
    
    @Service
    public class FileServiceImpl implements FileService {@Autowiredprivate MinioClient minioClient;@Value("${minio.bucket}")private String bucketName;@Overridepublic InputStream downloadFile(String fileName) {//从 MinIO 对象存储中读取的数据InputStream inputStream = null;try {inputStream = minioClient.getObject(GetObjectArgs.builder().object(fileName)//文件名称.bucket(bucketName)//文件所在存储桶的位置.build());} catch (Exception e) {return null;}return inputStream;}
    
  3. 测试结果:
    便于测试,我这里下载方法是显示下载文件的内容,结果正确。
    在这里插入图片描述

总结

与MQ类似,需要先部署服务,也有相应的图形化界面便于查看。写好配置文件,使用MinIO提供好的方法类即可。

以上为个人学习分享,如有问题,欢迎指出:)

http://www.dtcms.com/wzjs/160816.html

相关文章:

  • 网站建设提成方案武汉推广服务
  • 创新网站建设方案书网站优化主要优化哪些地方
  • 购物网站怎么做SEO西安网约车平台
  • 酒店网站建设论文北京百度科技有限公司电话
  • 怎么做发卡网站网站关键词公司
  • 动态网站开发的环境成都百度推广公司联系电话
  • 网站应用软件设计seo关键词排名软件
  • 何鹏seoaso优化软件
  • 简述网站建设的基本思路小红书seo排名规则
  • 做企业网站需要的人站长之家域名信息查询
  • html5 动态效果 手机网站今天特大军事新闻
  • 中秋网页设计素材网站百度快照如何优化
  • 给用ps做的网站加div百度小程序优化
  • 三门峡住房城乡建设局网站seo系统培训班
  • 公众平台登录郑州网站优化
  • 网站建设比较合理的流程是3000行业关键词
  • 一家专门做动漫的网站学大教育一对一收费价格表
  • dw做的网站成品怎么自己做网页
  • 水利部建设经济定额站网站南宁百度推广代理公司
  • html5网站开发实例书籍seo排名优化软件价格
  • 手机网站制作推广定制搜狐新闻手机网
  • linux软件开发工具做网站建设优化的公司排名
  • 怎样申请免费域名晨阳seo服务
  • 推广网站软文西安百度公司地址介绍
  • 网站建站业务cpa广告联盟
  • 祥云网站推广上海网络推广团队
  • 区域网站设计seo怎么快速提高排名
  • wordpress文章页怎么调用网站图片网站推广途径和要点
  • 社交网站 模板百度免费安装下载
  • 私自建立赌博网站判决书刚出来的新产品怎么推