安装对象存储MINIO并开启https

本文详细介绍如何利用Docker快速部署MinIO对象存储服务,并通过示例代码演示文件上传过程,同时介绍了如何配置HTTPS增强安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MINIO介绍

MinIO 是在 Apache License v2.0 下发布的高性能对象存储,100% 开放源代码。 它是与 Amazon S3 云存储服务兼容的 API。MinIO 是一个高性能的对象存储原生支持 Kubernetes 部署的解决方案。Minio 是一个非常轻量的服务,它可以存储⼤容量的⾮结构化数据,例如图⽚、视频、⽇志⽂件、备份数据和容器/虚拟机镜像等。对于⼤多数的企业来说,这可以说是最为理想的存储媒介了。而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。

前言

需要用到的东西

1.docker环境

2.服务器

3.域名以及域名证书

步骤

1.安装docker

2.使用docker安装MINIO

3.访问MINIO控制台登陆并上传文件测试

4.使用代码进行文件上传

5.域名以及域名SSL证书的准备

6.配置公钥私钥开启https

一、安装docker

宝塔服务器面板,一键全能部署及管理

服务器安装宝塔面板,成功之后会返回访问地址以及账号密码,如果不小心关掉了可以在服务器上通过shell连接工具连接 成功后输入 bt 操作面板

 

 进入宝塔页面之后点击左侧docker直接安装docker

 二、使用docker安装MINIO

下载MINIO镜像

docker pull minio/minio

 查看镜像

docker images
docker run --name minio -p 9090:9000 -p 9999:9999 -d \
--restart=always -e \
"MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=123456" \
-v /home/minio/data:/data \
-v /home/minio/config:/root/.minio minio/minio server /data --console-address '0.0.0.0:9999'
命令描述
-d后台运行容器,并返回容器ID
-p 9090:9000将容器内9090端口映射至宿主机9000端口,这个是访问的端口
-p 9999:9999将容器内9999端口映射至宿主机9999端口
--restart=always开启自动重启
-e \ "MINIO_ROOT_USER=admin"设置用户名为”admin“
-e \ "MINIO_ROOT_PASSWORD=123456"设置密码为“123456”
-v /home/minio/data:/data安装目录

三、访问MINIO控制台登陆并上传文件测试

执行完成命令之后访问minio管理界面 ,服务器ip:9090

 用户名密码输入刚才命令中设置的用户名和密码

点此处创建一个存储桶

 

创建完成之后即可在存储桶中上传文件

 上传成功之后点击上传的文件可以进行各种操作,可以直接查看

 

 四、使用代码进行文件上传

第一步:导入minio的依赖 ,参考文档 Minio官方文档

<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>7.1.0</version>
</dependency>

第二步:编写上传代码

public class MinioUpload {

    private static final String accessKey = "admin";//账号
    private static final String secretKey = "123456";//密码
    private static final String bucket = "test";//存储桶名称

    public static String imageUpload(MultipartFile file){
        String filePath = "";
        try {
            // 构建一个Minio客户端
            MinioClient minioClient = MinioClient.builder()
                    //创建容器时指定的账号
                    .credentials(accessKey, secretKey)
                    //上传地址
                    .endpoint("http://服务器ip:9090").build();
            // 对象键(Key)是对象在存储桶中的唯一标识。
            String key = "";
            //文件名
            key = file.getOriginalFilename();
            //构建上传内容
            PutObjectArgs putObjectArgs = PutObjectArgs.builder()
                    .object(key)	//文件名
                    .contentType(file.getContentType())	//文件类型
                    .bucket(bucket)  //存储桶名称
                    .stream(file.getInputStream(), file.getSize(), -1).build(); //文件流,以及大小,-1代表不分片
            //执行上传
            minioClient.putObject(putObjectArgs);
            //上传之后的文件地址是:
            filePath = "http://服务器ip:9090/"+ bucket + "/" + key;
            log.info("上传成功:{}",filePath);
        } catch(MinioException | IOException | NoSuchAlgorithmException | InvalidKeyException e) {
            log.error(String.valueOf(e));
        }
        return filePath;
    }
}

第三步:执行代码测试

 

 接下来在浏览器访问测试,http://服务器ip:9090/存储桶名称/文件名

 这个意思是说匿名(游客没登录)用户没有访问权限,如果我们需要我们上传的文件可以被匿名用户访问,那么需要添加访问权限:找到文件存储目录,点击manager设置access Rules添加访问规则

 保存规则设置之后再次访问

五、域名以及域名SSL证书的准备

上述方式只支持http方式访问,在项目上线的时候,大多数情况都是需要通过https访问的,提高安全性,这时候就需要准备域名和域名证书。

以腾讯云为例,购买好自己喜欢的域名之后还需要通过ICP备案才可以正常使用

 

六、配置公钥私钥开启https 

下载完成之后进行解压,然后会看到这么几个文件,我们需要用到".key"后缀文件和".crt"后缀文件

".key"后缀文件重命名为"private.key",".crt"后缀文件重命名为"public.crt",因为MINIO只识别这个名称的文件

 然后把文件上传到服务器中MINIO对应的配置文件处,可以直接通过宝塔面板可视化操作

 上传完成后重启MINIO

 接着进入MINIO控制台,通过https访问,选择任意一个文件点击分享可以看到前缀也变成https了

 接着在浏览器通过https访问文件测试

### 启动 MinIO 服务器 可以通过多种方式启动 MinIO 服务器,具体取决于使用的环境和需求。以下是几种常见的方法: #### 方法一:直接启动 可以直接通过命令行启动 MinIO 服务,指定控制台地址以及数据目录的位置[^3]: ```bash /home/minio/minio server --console-address ":50000" /home/minio/data ``` 此命令会启动 MinIO 服务器将控制台绑定到端口 `50000`。 --- #### 方法二:后台启动 如果希望将 MinIO 运行在后台记录日志文件,则可以使用以下命令: ```bash nohup /home/minio/minio server --address :9000 --console-address :50000 /home/minio/data >/home/minio/minio.log 2>&1 & ``` 上述命令会在后台运行 MinIO 将其日志保存至 `/home/minio/minio.log` 文件中。 --- #### 方法三:Docker 容器启动 对于基于 Docker 的环境中,推荐使用官方镜像来快速部署 MinIO 实例[^5]。完整的启动命令如下所示: ```dockerfile docker run -p 9000:9000 \ -p 9090:9090 \ --name minio \ -d \ --restart=always \ -e "MINIO_ROOT_USER=minio" \ -e "MINIO_ROOT_PASSWORD=minio123" \ -v /home/data:/data \ -v /home/config:/root/.minio \ minio/minio server /data --console-address ":9090" --address ":9000" ``` 在此配置下,MinIO 数据存储路径映射到了主机上的 `/home/data` 目录,而配置文件则存放在 `/home/config` 中。同时设置了两个暴露的端口:`9000` 是 S3 API 接口,默认用于客户端访问;`9090` 则是 MinIO 控制台的监听端口。 --- ### 登录 MinIO 控制台 一旦成功启动 MinIO 服务后,即可尝试访问其 Web 控制台界面。默认情况下,Web 控制台可通过浏览器打开,URL 地址通常形如 `http://<server-ip>:<control-port>`[^1]。例如,在上面的方法三中,应该输入 URL 如下: ``` http://localhost:9090 ``` 首次登录时需要提供管理员账户凭证。如果是通过 Docker 部署的方式设置的话,用户名为 `minio`,密码为 `minio123`(这些值可以在 `-e` 参数部分自定义)。另外也可以手动导出环境变量来进行身份验证[^4]: ```bash export MINIO_ACCESS_KEY=admin export MINIO_SECRET_KEY=test123456 ``` 完成以上步骤之后便能顺利进入 MinIO 控制台页面进行进一步的操作管理了。 ---
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值