文章目录

  • 前言
  • 一、Minio是什么?
  • 二、使用步骤
    • 下载minio镜像
    • 启动镜像
    • 获取下载链接代码(Java)
    • nginx配置(nginx端口80)
    • 访问方式
  • 总结

前言

目前现网中对象存储服务的使用频率越来越高,想要搭建一套完整的分布式对象存储集群成本太高且操作繁琐,本文介绍如何使用docker技术快速搭建一套简单的对象存储服务Minio。


一、Minio是什么?

MinIO 是一款高性能、分布式的对象存储系统. 它是一款软件产品, 可以100%的运行在标准硬件。即X86等低成本机器也能够很好的运行MinIO。
MinIO与传统的存储和其他的对象存储不同的是:它一开始就针对性能要求更高的私有云标准进行软件架构设计。因为MinIO一开始就只为对象存储而设计。所以他采用了更易用的方式进行设计,它能实现对象存储所需要的全部功能,在性能上也更加强劲,它不会为了更多的业务功能而妥协,失去MinIO的易用性、高效性。 这样的结果所带来的好处是:它能够更简单的实现局有弹性伸缩能力的原生对象存储服务。
MinIO在传统对象存储用例(例如辅助存储,灾难恢复和归档)方面表现出色。同时,它在机器学习、大数据、私有云、混合云等方面的存储技术上也独树一帜。当然,也不排除数据分析、高性能应用负载、原生云的支持。
在中国:阿里巴巴、腾讯、百度、中国联通、华为、中国移动等等9000多家企业也都在使用MinIO产品。

官方地址:http://www.minio.org.cn

二、使用步骤

下载minio镜像

docker search minio     &     docker pull minio

启动镜像

docker run -d -v /data/minio:/data/minio -p 9000:9000 -p 9001:9001  minio/minio server /data/minio --console-address ":9001" -address ":9000"
  • 9000为minio服务接口的北向端口(即下载链接对应的端口)
  • 9001为控制台端口,控制台用户名密码默认minioadmin,可设置AK、SK
  • 启动后minio服务地址:192.168.1.1:9000(此URl重要,下文中会用到!!!
  • 创建bucket,并设置权限为私有,确保安全

获取下载链接代码(Java)

@Configuration
public class MinioClientConfig {@Autowiredprivate MinioProperties minioProperties;@Beanpublic OkHttpClient httpClient() {OkHttpClientFactory okHttpClientFactory = new DefaultOkHttpClientFactory(new OkHttpClient().newBuilder());return okHttpClientFactory.createBuilder(true).retryOnConnectionFailure(true).callTimeout(60000, TimeUnit.MILLISECONDS).readTimeout(300000, TimeUnit.MILLISECONDS).build();}@Bean(name = {"minioClient"})public MinioClient minioClient() {OkHttpClient client = httpClient();return MinioClient.builder().httpClient(client).endpoint(minioProperties.getUrl()).credentials(minioProperties.getAccessKey(), minioProperties.getSecretKey()).build();}
@Data
@Configuration
@ConfigurationProperties(prefix = "s3")
public class MinioProperties {private String url;      //对应上文的192.168.1.1:9000private String accessKey;private String secretKey;
}
url = minioClient.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder().expiry(6000).method(Method.GET).bucket("bucket").object("111.txt").build());

nginx配置(nginx端口80)

location /oss/ {proxy_set_header Host 192.168.1.1:9000;       // 注意这里的Host要和minio地址保持一致proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Real-PORT $remote_port;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass   http://192.168.1.1:9000/;}
proxy_buffering off;           // 当签名信息无误的时候报403,可以尝试添加这两行配置
proxy_request_buffering off;

访问方式

直接访问minio服务:

http://192.168.1.1:9000/bucket/111.txt?........

通过nginx转发:

http://192.168.1.1:80/oss/bucket/111.txt?........

总结

本文简单介绍了Minio的安装和使用,以上就是今天要讲的内容。

本地搭建Minio服务及通过Nginx代理进行文件下载相关推荐

  1. 本地搭建xxl-job服务及连接验证

    1.本地搭建xxl-job服务 1.1.使用git下载https://github.com/xuxueli/xxl-job.git代码 1.2.使用idea打开下载的项目,切换2.2.0分支 1.3. ...

  2. Linux Centos8 安装Minio开机启动并Nginx代理访问

    查看官方文档(MinIO)进行操作 安装minio #下载 wget https://dl.min.io/server/minio/release/linux-amd64/minio#创建目录 sud ...

  3. 利用空闲服务器搭建frps服务端-实现穿透代理

    利用frps代理Tcp或者udp或其它类型的连接 1.什么是frps/frpc frps是代理的服务端.frpc是代理的客户端,使用方数据传输到服务端,服务端再将数据传输到提供方,从而达到相互访问的目 ...

  4. 微信小程序推流拉流live-pusher/live-player示例,使用本地搭建RTMP服务

    适用读者: 对微信小程序已经有基本的了解. 例如:小程序账号申请. 常用组件.小程序开发工具 对nodejs已经有基本的了解. 对微信小程序流媒体/实时音视频组件感兴趣的童鞋. 对小鱼易联/小鱼在家, ...

  5. Widnows本地搭建WebDav服务,并内网穿透公网可访问

    自己用Windows Server搭建了家用NAS主机,WebDAV的文件共享方式当然也是必不可少的. 本文使用的是WIN10 专业版. 1. 安装IIS必要WebDav组件 1.1 打开控制面板,查 ...

  6. 如何搭建Rtmp服务结合uni-app开发直播APP

    前言: 由于自己有一个IM类的应用,为了完善它所以决定也加上直播和短视频功能.做直播目前有两种方法,一是直接对接第三方的直播服务产品,二是自己搭服务再开发.所以这里也从这两个方法推荐简单的实现方式,阿 ...

  7. 小米路由硬盘版搭建ftp服务和博客

    想入手NAS很久了,元旦时看了看群晖,还是一如既往的贵.想想还是觉得肾疼,还是想办法把家里的小米路由器折腾折腾,之前买了个硬盘版本(1T硬盘).所以决定先获取一下路由器的高级管理权限. 对了,我的路由 ...

  8. flask之搭建web服务

    文章目录 前言 本地搭建flask服务 设置路由 设置请求方法和参数 如何搭建一个restful接口的服务 前言 flask是什么?众所周知 java有 spring 全家桶和sparkjava,Py ...

  9. 云服务器,Linux上安装xampp,搭建node服务,云服务器Firewalld、iptables,nginx反向代理

    目录 写在前面的 前期准备 下载xampp: xampp安装步骤 1.首先链接远程linux服务器 2.xshell终端执行安装命令 3.启动:xampp服务 4.访问数据库,修改数据库密码 安装守护 ...

最新文章

  1. python分组求和_Python学习笔记之pandas索引列、过滤、分组、求和功能示例
  2. java ftp 读取 txt文件_java通过ftp方式读取文件,并解析入库
  3. 2.struts1.x中的异常处理
  4. linux基础应用和常用技巧
  5. es为mysql创建索引_ES(ElasticSearch) 索引创建
  6. 获取winform 运行时debug路径
  7. 关于AJAX的安全性
  8. 干货——常用医药数据库
  9. Django:发送邮件
  10. 《论语》全译——孔子生平
  11. JAVA学习day30--方法的重写
  12. 电子计算机技发展趋势,现代电子信息技的现况及发展趋势.ppt
  13. 快递查询单号查询,怎么查物流到哪了
  14. python numpy 求top-k accuracy指标
  15. 深信服超融合技术架构(重点介绍主要模块)
  16. 通过上下两册书籍夯实Python基础,这本书就是Python的必备书籍
  17. 2023届米哈游秋招-平台后端第1批
  18. 全息与沙盘的融合,全息沙盘带来全新体验
  19. pydicom图像数据的保存
  20. android studio1.2.6,1.2.2 使用Android Studio开发Android APP | 菜鸟教程

热门文章

  1. 趣头条——前区块链时代一次不成功的实验
  2. ABAP 选择屏幕标题和ALV标题的修改
  3. 单片机——数码管1(Proteus和KeilC51)
  4. python筛选股票5日线以上_使用python求股价的移动均线(如5日线/10日线)的方法...
  5. 开发者模式里添加文件管理项跳转
  6. 《设计搜索体验:搜索的艺术与科学》迷你书
  7. php 上传 照片流,怎么样不让你的屏幕截图上传到照片流里面
  8. linux基础篇--day03
  9. Flex Form表单 表格加载XML 数据绑定
  10. 细说英文单词连载二:探寻西方先人造词圣经