本地搭建Minio服务及通过Nginx代理进行文件下载
文章目录
- 前言
- 一、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代理进行文件下载相关推荐
- 本地搭建xxl-job服务及连接验证
1.本地搭建xxl-job服务 1.1.使用git下载https://github.com/xuxueli/xxl-job.git代码 1.2.使用idea打开下载的项目,切换2.2.0分支 1.3. ...
- Linux Centos8 安装Minio开机启动并Nginx代理访问
查看官方文档(MinIO)进行操作 安装minio #下载 wget https://dl.min.io/server/minio/release/linux-amd64/minio#创建目录 sud ...
- 利用空闲服务器搭建frps服务端-实现穿透代理
利用frps代理Tcp或者udp或其它类型的连接 1.什么是frps/frpc frps是代理的服务端.frpc是代理的客户端,使用方数据传输到服务端,服务端再将数据传输到提供方,从而达到相互访问的目 ...
- 微信小程序推流拉流live-pusher/live-player示例,使用本地搭建RTMP服务
适用读者: 对微信小程序已经有基本的了解. 例如:小程序账号申请. 常用组件.小程序开发工具 对nodejs已经有基本的了解. 对微信小程序流媒体/实时音视频组件感兴趣的童鞋. 对小鱼易联/小鱼在家, ...
- Widnows本地搭建WebDav服务,并内网穿透公网可访问
自己用Windows Server搭建了家用NAS主机,WebDAV的文件共享方式当然也是必不可少的. 本文使用的是WIN10 专业版. 1. 安装IIS必要WebDav组件 1.1 打开控制面板,查 ...
- 如何搭建Rtmp服务结合uni-app开发直播APP
前言: 由于自己有一个IM类的应用,为了完善它所以决定也加上直播和短视频功能.做直播目前有两种方法,一是直接对接第三方的直播服务产品,二是自己搭服务再开发.所以这里也从这两个方法推荐简单的实现方式,阿 ...
- 小米路由硬盘版搭建ftp服务和博客
想入手NAS很久了,元旦时看了看群晖,还是一如既往的贵.想想还是觉得肾疼,还是想办法把家里的小米路由器折腾折腾,之前买了个硬盘版本(1T硬盘).所以决定先获取一下路由器的高级管理权限. 对了,我的路由 ...
- flask之搭建web服务
文章目录 前言 本地搭建flask服务 设置路由 设置请求方法和参数 如何搭建一个restful接口的服务 前言 flask是什么?众所周知 java有 spring 全家桶和sparkjava,Py ...
- 云服务器,Linux上安装xampp,搭建node服务,云服务器Firewalld、iptables,nginx反向代理
目录 写在前面的 前期准备 下载xampp: xampp安装步骤 1.首先链接远程linux服务器 2.xshell终端执行安装命令 3.启动:xampp服务 4.访问数据库,修改数据库密码 安装守护 ...
最新文章
- python分组求和_Python学习笔记之pandas索引列、过滤、分组、求和功能示例
- java ftp 读取 txt文件_java通过ftp方式读取文件,并解析入库
- 2.struts1.x中的异常处理
- linux基础应用和常用技巧
- es为mysql创建索引_ES(ElasticSearch) 索引创建
- 获取winform 运行时debug路径
- 关于AJAX的安全性
- 干货——常用医药数据库
- Django:发送邮件
- 《论语》全译——孔子生平
- JAVA学习day30--方法的重写
- 电子计算机技发展趋势,现代电子信息技的现况及发展趋势.ppt
- 快递查询单号查询,怎么查物流到哪了
- python numpy 求top-k accuracy指标
- 深信服超融合技术架构(重点介绍主要模块)
- 通过上下两册书籍夯实Python基础,这本书就是Python的必备书籍
- 2023届米哈游秋招-平台后端第1批
- 全息与沙盘的融合,全息沙盘带来全新体验
- pydicom图像数据的保存
- android studio1.2.6,1.2.2 使用Android Studio开发Android APP | 菜鸟教程