文件存储MinIO搭建详细教程,OSS最佳平替!

最近在盘点费用账单时,突然发现OSS的费用异常高,主要是消耗在带宽上!现决定替换掉该工具,找了一圈,发现minio是最佳平替选项!接下来将带大家花3分钟在云服务器上快速部署minio以及会遇到的坑

什么是minio?

MinIO 是一个高性能的对象存储系统,兼容 Amazon S3 API。它被设计用于大规模数据存储和处理,广泛应用于大数据分析、机器学习、日志存储、备份和恢复等多种场景。MinIO 提供了高可用性、可扩展性和高性能,特别适合云原生和容器化环境。

MinIO 的主要特点包括:

  • 高性能:支持高并发访问和大文件传输。
  • 兼容性:完全兼容 Amazon S3 API,易于集成到现有的 S3 生态系统中。
  • 可靠性:支持多节点集群部署,确保数据的高可用性和持久性。
  • 安全性:提供强大的身份验证和访问控制机制。
  • 易于部署:支持多种部署方式,包括 Docker 容器、Kubernetes、虚拟机等。

MinIO 已经被广泛应用于各种场景,包括但不限于:

  • 大数据处理:用于存储和处理大规模的数据集。
  • 机器学习:用于存储训练数据和模型。
  • 日志管理:用于集中存储和管理日志文件。
  • 备份和归档:用于长期数据存储和归档。
  • 容器化应用:作为容器化应用的数据存储服务。

Ubuntu安装minIO详细步骤

更新系统包列表:

sudo apt update

下载MinIO二进制文件:

sudo wget https://dl.min.io/server/minio/release/linux-amd64/minio

赋予执行权限:

当前用户添加写的权限

sudo chmod +x minio

帮minio操作权限赋权给当前用户

sudo chomod ubuntu:ubuntu minio

移动MinIO二进制文件到可执行路径:

sudo mv minio /usr/local/bin/

创建MinIO配置目录和存储目录:

sudo mkdir -p /etc/minio /mnt/data

创建MinIO配置文件:

sudo vim /etc/minio/config.json

在文件中添加以下内容(根据需要修改访问密钥和秘密密钥):

{
    "credentials": {
        "accessKey""test",
        "secretKey""vector"
    }
}

创建MinIO服务文件:

sudo vim /etc/systemd/system/minio.service

在文件中添加以下内容,这里注意:添加--console-address ":37585" --address ":9000",可以把控制台页面和api端口固定住,否则每次重启端口会变。这里Environment也一起配置下,否则会使用默认minioadmin/minioadmin,有安全风险

[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target

[Service]
User=root
Group=root
Environment="MINIO_ROOT_USER=admin"
Environment="MINIO_ROOT_PASSWORD=newpass"
ExecStart=/usr/local/bin/minio server --config-dir /etc/minio --console-address ":37585" --address ":9000" /mnt/data
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

重新加载systemd配置:

sudo systemctl daemon-reload

重启MinIO服务:

sudo systemctl restart minio

设置MinIO服务开机自启动:

sudo systemctl enable minio

检查MinIO服务状态:

sudo systemctl status minio

打开云服务器9000和**37585**端口使外网可以访问

注意:这里要开9000和37585给外网访问

现在,你应该能够通过浏览器访问MinIO管理界面,地址为 http://你的ip:9000,并使用你在配置文件中设置的访问密钥和秘密密钥登录。

登录页面配置bucket

使用:http://你的ip:37585,账号密码是第7步里 admin / newpass

创建Bucket

bucket相当于一个分组,直接通过MinIO管理页面进行创建

创建Access keys

后端系统存储数据需要通过该key+bucket完成上传下载

### Java 实现杨辉三角形 在Java中实现杨辉三角形可以通过二维数组来存储每一层的数据,并通过循环结构构建和打印这个图形。 ```java public class YangHuiTriangle { public static void main(String[] args) { int numRows = 10; int[][] triangle = new int[numRows][]; for (int i = 0; i < numRows; ++i) { triangle[i] = new int[i + 1]; triangle[i][0] = triangle[i][i] = 1; for (int j = 1; j < i; ++j) { triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j]; } // Print the current row of Pascal's Triangle for(int k=0;k<numRows-i-1;++k){ System.out.print(" "); } for (int num : triangle[i]) { System.out.print(num + " "); } System.out.println(); } } } ``` 这段代码创建了一个`numRows`行的杨辉三角形并将其逐行打印出来,其中包含了必要的空格以保持形状美观[^1]。 ### 使用Java绘制等腰三角形星号图案 对于等腰三角形而言,则不需要复杂的计算逻辑,只需要控制好每行输出字符的数量即可形成想要的效果。 ```java public class IsoscelesStarPattern { public static void main(String[] args) { int height = 7; for (int i = 0; i < height; ++i) { // Print spaces to align stars properly. for (int space = 0; space < height - i - 1; ++space) { System.out.print(" "); } // Print stars '*'. for (int star = 0; star <= i * 2; ++star) { if(star % 2 == 0) System.out.print("*"); else System.out.print(" "); } System.out.println(); } } } ``` 此程序定义了高度为`height`的等腰三角形,利用两个嵌套循环分别处理前导空白区域与实际要显示的星号位置关系,从而达到视觉上的中心对称效果[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神码小Z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值