对象存储-MinIO-学习-01-安装部署

目录

一、介绍

二、环境信息

三、下载安装包

1、MinIO官网下载地址

2、选择版本

(1)MinIO Server

(2)MinIO Client

(3)MinIO SDK

四、MinIO SDK安装步骤

1、安装minio库

2、导入minio库报错:SyntaxError: future feature annotations is not defined

3、升级Python3

4、安装minio库

5、导入minio库正常

五、MinIO客户端服务端安装步骤

1、拷贝文件到安装目录

2、修改权限、所属用户、所属组

3、修改/etc/profile

4、启动服务端

5、WEB页面创建存储桶

6、命令行创建存储桶

(1)配置MinIO服务器的别名

(2)查看MinIO服务器的别名

(3)创建存储桶

(4)验证存储桶创建

(5)设置存储桶匿名访问策略

(6)查看存储桶匿名访问策略

(7)文件上传到桶中

(8)查看桶权限

(9)查看桶文件信息

六、配置开机自启服务

1、新建/etc/systemd/system/MinIO.service 

2、设置MinIO环境变量

3、启用MinIO服务在系统启动时自动启动

4、启动MinIO服务

5、查看MinIO服务状态


一、介绍

MinIO 是一个高性能、兼容 S3 的对象存储。它专为大规模 AI/ML、数据湖和数据库工作负载而构建。它是软件定义的,可在任何云或本地基础架构上运行。MinIO 在开源 GNU AGPL v3 和商业企业许可证下获得双重许可。

二、环境信息

名称
CPUIntel(R) Core(TM) i5-1035G1 CPU @ 1.00GHz
操作系统CentOS Linux release 7.9.2009 (Core)
内存4G
逻辑核数4
MinIO版本minio version RELEASE.2024-06-13T22-53-53Z (commit-id=20960b6a2ddb9594ee418035b3c7c7fe92ae6a12)
Runtime: go1.22.4 linux/amd64
License: GNU AGPLv3 - https://www.gnu.org/licenses/agpl-3.0.html
Copyright: 2015-2024 MinIO, Inc.

三、下载安装包

1、MinIO官网下载地址

MinIO安装包下载地址

2、选择版本

1)开源或企业版。

2)操作系统。

3)CPU架构。

4)安装包类型。

5)下载按钮。

(1)MinIO Server

(2)MinIO Client

(3)MinIO SDK

软件开发工具包没有C,我选择Python,这个大家可以根据自己需求进行下载,对于安装部署没有影响。

四、MinIO SDK安装步骤

不需要安装软件开发工具Python包的可以跳过此节。

1、安装minio库

[gbase@czg0 ~]$ pip3 install minio
Defaulting to user installation because normal site-packages is not writeable
Collecting minio
  Downloading minio-7.2.7-py3-none-any.whl (93 kB)
     |████████████████████████████████| 93 kB 107 kB/s             
Requirement already satisfied: typing-extensions in /usr/local/lib/python3.6/site-packages (from minio) (4.1.1)
Requirement already satisfied: pycryptodome in /usr/local/lib64/python3.6/site-packages (from minio) (3.20.0)
Requirement already satisfied: argon2-cffi in /usr/local/lib/python3.6/site-packages (from minio) (21.3.0)
Requirement already satisfied: urllib3 in /usr/local/lib/python3.6/site-packages (from minio) (1.26.19)
Requirement already satisfied: certifi in /usr/local/lib/python3.6/site-packages (from minio) (2024.6.2)
Requirement already satisfied: dataclasses in /usr/local/lib/python3.6/site-packages (from argon2-cffi->minio) (0.8)
Requirement already satisfied: argon2-cffi-bindings in /usr/local/lib64/python3.6/site-packages (from argon2-cffi->minio) (21.2.0)
Requirement already satisfied: cffi>=1.0.1 in /usr/local/lib64/python3.6/site-packages (from argon2-cffi-bindings->argon2-cffi->minio) (1.14.6)
Requirement already satisfied: pycparser in /usr/local/lib/python3.6/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->minio) (2.20)
Installing collected packages: minio
Successfully installed minio-7.2.7

2、导入minio库报错:SyntaxError: future feature annotations is not defined

[gbase@czg0 ~]$ python3
Python 3.6.8 (default, Nov 16 2020, 16:55:22) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import minio
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/gbase/.local/lib/python3.6/site-packages/minio/__init__.py", line 41, in <module>
    from .api import Minio as Minio
  File "/home/gbase/.local/lib/python3.6/site-packages/minio/api.py", line 28
    from __future__ import absolute_import, annotations
    ^
SyntaxError: future feature annotations is not defined
>>> quit()

报了一个语法错误,初步怀疑是python版本太低,我们升级一下Python版本试试。如果没有报错就跳过此步。

3、升级Python3

请参考之前的博客:《Linux-学习-06-Python3安装与卸载

4、安装minio库

[root@czg0 Python-3.12.4]# pip3 install minio
Collecting minio
  Downloading minio-7.2.7-py3-none-any.whl.metadata (6.4 kB)
Collecting certifi (from minio)
  Downloading certifi-2024.6.2-py3-none-any.whl.metadata (2.2 kB)
Collecting urllib3 (from minio)
  Downloading urllib3-2.2.2-py3-none-any.whl.metadata (6.4 kB)
Collecting argon2-cffi (from minio)
  Downloading argon2_cffi-23.1.0-py3-none-any.whl.metadata (5.2 kB)
Collecting pycryptodome (from minio)
  Downloading pycryptodome-3.20.0-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.4 kB)
Collecting typing-extensions (from minio)
  Downloading typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)
Collecting argon2-cffi-bindings (from argon2-cffi->minio)
  Downloading argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.7 kB)
Collecting cffi>=1.0.1 (from argon2-cffi-bindings->argon2-cffi->minio)
  Downloading cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting pycparser (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->minio)
  Downloading pycparser-2.22-py3-none-any.whl.metadata (943 bytes)
Downloading minio-7.2.7-py3-none-any.whl (93 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 93.5/93.5 kB 476.6 kB/s eta 0:00:00
Downloading argon2_cffi-23.1.0-py3-none-any.whl (15 kB)
Downloading certifi-2024.6.2-py3-none-any.whl (164 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 164.4/164.4 kB 391.0 kB/s eta 0:00:00
Downloading pycryptodome-3.20.0-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 542.8 kB/s eta 0:00:00
Downloading typing_extensions-4.12.2-py3-none-any.whl (37 kB)
Downloading urllib3-2.2.2-py3-none-any.whl (121 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 121.4/121.4 kB 257.9 kB/s eta 0:00:00
Downloading argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (86 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 86.2/86.2 kB 144.0 kB/s eta 0:00:00
Downloading cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (477 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 477.6/477.6 kB 297.8 kB/s eta 0:00:00
Downloading pycparser-2.22-py3-none-any.whl (117 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 117.6/117.6 kB 501.1 kB/s eta 0:00:00
Installing collected packages: urllib3, typing-extensions, pycryptodome, pycparser, certifi, cffi, argon2-cffi-bindings, argon2-cffi, minio
Successfully installed argon2-cffi-23.1.0 argon2-cffi-bindings-21.2.0 certifi-2024.6.2 cffi-1.16.0 minio-7.2.7 pycparser-2.22 pycryptodome-3.20.0 typing-extensions-4.12.2 urllib3-2.2.2
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

[notice] A new release of pip is available: 24.0 -> 24.1
[notice] To update, run: pip install --upgrade pip

5、导入minio库正常

[root@czg0 Python-3.12.4]# python3
Python 3.12.4 (main, Jun 22 2024, 21:10:08) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import minio
>>> 

五、MinIO客户端服务端安装步骤

1、拷贝文件到安装目录

[root@czg0 GcdwPkg]# cp mc /opt/GCDW/MinIO/

[root@czg0 GcdwPkg]# cp minio /opt/GCDW/MinIO/

2、修改权限、所属用户、所属组

[root@czg0 MinIO]# pwd
/opt/GCDW/MinIO

[root@czg0 MinIO]# chown -R gbase:gbase /opt/GCDW

[root@czg0 MinIO]# chmod -R 755 /opt/GCDW/

[root@czg0 MinIO]# ll
总用量 126940
-rwxr-xr-x 1 gbase gbase  26800280 6月  23 17:12 mc
-rwxr-xr-x 1 gbase gbase 103178392 6月  23 17:13 minio

3、修改/etc/profile

添加内容如下,主要是为了方便调用MinIO相关命令。

export PATH=$PATH:/opt/GCDW/MinIO

生效配置文件

[root@czg0 MinIO]# . /etc/profile

4、启动服务端

[gbase@czg0 MinIO]$ nohup ./minio server Data &
[1] 116303
[gbase@czg0 MinIO]$ nohup: 忽略输入并把输出追加到"nohup.out"

[gbase@czg0 MinIO]$ tail -f nohup.out 
STARTUP WARNINGS:
- Detected Linux kernel version older than 4.0.0 release, there are some known potential performance problems with this kernel version. MinIO recommends a minimum of 4.x.x linux kernel version for best performance
- Detected default credentials 'minioadmin:minioadmin', we recommend that you change these values with 'MINIO_ROOT_USER' and 'MINIO_ROOT_PASSWORD' environment variables
- The standard parity is set to 0. This can lead to data loss.

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ You are running an older version of MinIO released 1 week before the latest release ┃
┃ Update: Run `mc admin update ALIAS`                                                 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛


[gbase@czg0 MinIO]$ ll
总用量 126944
drwxrwxr-x 3 gbase gbase        24 6月  23 17:33 Data
-rwxr-xr-x 1 gbase gbase  26800280 6月  23 17:12 mc
-rwxr-xr-x 1 gbase gbase 103178392 6月  23 17:13 minio
-rw------- 1 gbase gbase      1778 6月  23 17:33 nohup.out

我的操作系统内核版本比较低有性能问题,不过默默当作没看到。

5、WEB页面创建存储桶

登录http://你的IP:9000,登录用户和密码是默认的:minioadmin

选择Buckets->Create Bucket。

起一个只包含小写字符、下划线、点等的名字。其他的存储桶特征选项我就默认了,这里有几个概念介绍一下:

名称描述
存储桶MinIO 使用存储桶来组织对象。存储桶类似于文件系统中的文件夹或目录,其中每个存储桶可以容纳任意数量的对象。
版本控制允许将同一对象的多个版本保留在同一键下。
对象锁可防止删除对象。需要支持保留和法定保留。只能在创建存储桶时启用。
配额限制存储桶中的数据量。
保留强制执行规则,以防止在一段时间内删除对象。必须启用版本控制才能设置存储桶保留策略。

创建成功。

6、命令行创建存储桶

(1)配置MinIO服务器的别名

[gbase@czg0 MinIO]$ mc config host add CzgMinIO0 http://192.168.142.10:9000 minioadmin minioadmin
Added `CzgMinIO0` successfully.

(2)查看MinIO服务器的别名


[gbase@czg0 MinIO]$ mc config host ls
CzgMinIO0
  URL       : http://192.168.142.10:9000
  AccessKey : minioadmin
  SecretKey : minioadmin
  API       : s3v4
  Path      : auto

gcs      
  URL       : https://storage.googleapis.com
  AccessKey : YOUR-ACCESS-KEY-HERE
  SecretKey : YOUR-SECRET-KEY-HERE
  API       : S3v2
  Path      : dns

local    
  URL       : http://localhost:9000
  AccessKey : 
  SecretKey : 
  API       : 
  Path      : auto

play     
  URL       : https://play.min.io
  AccessKey : Q3AM3UQ867SPQQA43P2F
  SecretKey : zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG
  API       : S3v4
  Path      : auto

s3       
  URL       : https://s3.amazonaws.com
  AccessKey : YOUR-ACCESS-KEY-HERE
  SecretKey : YOUR-SECRET-KEY-HERE
  API       : S3v4
  Path      : dns

(3)创建存储桶

[gbase@czg0 MinIO]$ mc mb CzgMinIO0/zxj.bucket
Bucket created successfully `CzgMinIO0/zxj.bucket`.

[gbase@czg0 MinIO]$ ll Data/
总用量 0
drwxrwxr-x 2 gbase gbase 6 6月  23 18:15 czg.bucket
drwxrwxr-x 2 gbase gbase 6 6月  23 19:33 zxj.bucket

(4)验证存储桶创建

[gbase@czg0 MinIO]$ mc ls CzgMinIO0
[2024-06-23 18:15:59 CST]     0B czg.bucket/
[2024-06-23 19:33:30 CST]     0B zxj.bucket/

(5)设置存储桶匿名访问策略

MinIO的匿名访问策略允许未经身份验证的用户(即匿名用户)对存储桶中的对象进行读取或写入操作。这通常用于公共存储桶,其中数据被设计为任何人都可以访问,而无需提供任何密钥。

[gbase@czg0 MinIO]$ mc anonymous set public  CzgMinIO0/zxj.bucket
Access permission for `CzgMinIO0/zxj.bucket` is set to `public`

(6)查看存储桶匿名访问策略

MinIO支持多种策略类型,包括none(私有),download(公共下载),upload(公共上传),public(公共读写),delete(公共删除),以及自定义策略。

[gbase@czg0 MinIO]$ mc anonymous list  CzgMinIO0/zxj.bucket
zxj.bucket/* => readwrite

(7)文件上传到桶中

[gbase@czg0 Tpcds]$ mc cp /home/gbase/Tpcds/dists.dss CzgMinIO0/zxj.bucket
/home/gbase/Tpcds/dists.dss:      11.17 KiB / 11.17 KiB ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 1.33 MiB/s 0s

(8)查看桶权限

[gbase@czg0 Tpcds]$ mc anonymous get CzgMinIO0/zxj.bucket
Access permission for `CzgMinIO0/zxj.bucket` is `public`

(9)查看桶文件信息

[gbase@czg0 Tpcds]$ mc stat CzgMinIO0/zxj.bucket/dists.dss
Name      : dists.dss
Date      : 2024-07-18 09:41:26 CST 
Size      : 11 KiB 
ETag      : 5e1c0a8cd0f96f34dca853941cd76129 
Type      : file 
Metadata  :
  Content-Type: application/octet-stream 

六、配置开机自启服务

这一步选做。

1、新建/etc/systemd/system/MinIO.service 

其中内容大家根据实际环境填写。

[root@czg0 package]# cat /etc/systemd/system/MinIO.service 
[Unit]
Description=MinIO
After=network.target
Wants=network.target
 
[Service]
User=gbase
Group=gbase
Type=simple
EnvironmentFile=-/etc/default/minio
ExecStart=/opt/GCDW/MinIO/minio server /opt/GCDW/MinIO/Data
Restart=on-failure
RestartSec=5
 
[Install]
WantedBy=multi-user.target

2、设置MinIO环境变量

创建或编辑/etc/default/minio文件,设置MinIO服务的环境变量。

[root@czg0 package]# cat /etc/default/minio
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin

3、启用MinIO服务在系统启动时自动启动

[root@czg0 package]# systemctl enable MinIO.service
Created symlink from /etc/systemd/system/multi-user.target.wants/MinIO.service to /etc/systemd/system/MinIO.service.

4、启动MinIO服务

[root@czg0 package]# systemctl start MinIO.service

5、查看MinIO服务状态

[root@czg0 package]# systemctl status MinIO.service
● MinIO.service - MinIO
   Loaded: loaded (/etc/systemd/system/MinIO.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2024-06-23 20:09:40 CST; 1min 25s ago
 Main PID: 6227 (minio)
    Tasks: 9
   Memory: 81.6M
   CGroup: /system.slice/MinIO.service
           └─6227 /opt/GCDW/MinIO/minio server /opt/GCDW/MinIO/Data

6月 23 20:09:41 czg0 minio[6227]: API: http://192.168.142.10:9000  http://192.168.122.1:9000  http://127.0.0.1:9000
6月 23 20:09:41 czg0 minio[6227]: WebUI: http://192.168.142.10:18861 http://192.168.122.1:18861 http://127.0.0.1:18861
6月 23 20:09:41 czg0 minio[6227]: Docs: https://min.io/docs/minio/linux/index.html
6月 23 20:09:41 czg0 minio[6227]: Status:         1 Online, 0 Offline.
6月 23 20:09:41 czg0 minio[6227]: STARTUP WARNINGS:
6月 23 20:09:41 czg0 minio[6227]: - Detected Linux kernel version older than 4.0.0 release, there are some known potential performance problems with this kernel version....t performance
6月 23 20:09:41 czg0 minio[6227]: - Detected default credentials 'minioadmin:minioadmin', we recommend that you change these values with 'MINIO_ROOT_USER' and 'MINIO_ROO...ent variables
6月 23 20:09:41 czg0 minio[6227]: - The standard parity is set to 0. This can lead to data loss.
6月 23 20:09:42 czg0 minio[6227]: You are running an older version of MinIO released 1 week before the latest release
6月 23 20:09:42 czg0 minio[6227]: Update: Run `mc admin update ALIAS`
Hint: Some lines were ellipsized, use -l to show in full.

  • 13
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Java中部署MinIO,您需要按照以下步骤操作: 1. 首先,您需要在Java项目中添加MinIO的依赖项。您可以在Maven或Gradle配置文件中添加以下依赖项: Maven: ```xml <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>RELEASE.2021-03-25T23-39-59Z</version> </dependency> ``` Gradle: ``` implementation 'io.minio:minio:RELEASE.2021-03-25T23-39-59Z' ``` 2. 然后,您需要在Java代码中使用MinIO的API进行连接和操作。您可以使用以下示例代码来连接到MinIO服务器,并创建、读取和删除存储桶: ```java import io.minio.MinioClient; import io.minio.errors.MinioException; public class MinioExample { public static void main(String[] args) { try { // 创建一个MinIO客户端对象 MinioClient minioClient = new MinioClient("http://localhost:9000", "accessKey", "secretKey"); // 创建一个新的存储桶 minioClient.makeBucket("mybucket"); // 上传文件到存储桶 minioClient.putObject("mybucket", "myobject", "/path/to/file"); // 下载文件 minioClient.getObject("mybucket", "myobject", "/path/to/downloaded/file"); // 删除文件 minioClient.removeObject("mybucket", "myobject"); // 删除存储桶 minioClient.removeBucket("mybucket"); } catch (MinioException e) { // 处理MinIO异常 e.printStackTrace(); } } } ``` 请注意,您需要将上述代码中的"accessKey"和"secretKey"替换为您自己的MinIO凭据,并将"http://localhost:9000"替换为您的MinIO服务器地址。 这是一个简单的MinIO Java示例,您可以根据您的需求进行扩展和定制。 这些步骤会帮助您在Java中部署和使用MinIO。根据您的具体需求,您可以进一步了解MinIO的API文档以及其他高级功能和配置选项。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [开源minio-AWS-S3存储的部署及java操作](https://blog.csdn.net/liuyunshengsir/article/details/120266682)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [对象存储 minio windows服务端版本:2022-05-23T18-45-11Z](https://download.csdn.net/download/libie_lt/85456744)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值