说明:MinIO是文件资源服务器,相当于免费的OSS,安装参考: Minio使用及整合起步依赖

如果你的桶(Bucket)权限设置的是“Private”,那么可能会有数据泄露的风险。像别有用心的用户,可以通过抓包,获取到Minio服务器的地址和桶名;

(如下,simple桶下有这两个文件)
在这里插入图片描述

假如项目中,我们给用户提供了"文本文件.txt",那么服务器肯定会把下面这个URL响应给前端,包括了 MinIO服务器的地址和该文件所在的Bucket名,最后是文件名

现在如果这个地址被人通过抓包工具,抓包得到,那么就可以通过去掉文件名,直接获取到该Bucket下的所有文件清单,如下,可以看到该Bucket下的另一个文件(这是一个word文件.docx),这就有文件泄露的风险。

解决这个问题,可以通过修改Bucket配置,将 Access Policy 设置为 Custom ,并且去掉下面 Write Policy 中的这行配置;

在这里插入图片描述
去掉,保存;

重试,直接输入Bucket名就不行;

以上MinIO服务器部署在云服务上的CentOS系统上,MinIO为容器启动,版本为laster;

如果你使用的不是镜像容器启动,或者是其他操作系统下的, 可以参考这位博主的文章

文章目录前言 Minio 客户端的使用权限控制主流程测试Amazon S3 定义的操作:即各种权限配置         前文我们学习了 minio 的基本概念与搭建,那么如果我们有n个系统,n个系统都在使用同一套 minio ,那么如何来控制每个系统的 访问 权限呢???本文则重在解决此问题。 Minio 客户端的使用 MinIO 客户端快速入门指南
遍历 Minio 存储 中的文件夹,你可以使用 Minio 客户端库或 Minio 的API来实现。下面以Python语言为例,演示如何 遍历 Minio 存储 中的文件夹: ```python from minio import Minio # 初始化 Minio 客户端 minio _client = Minio ( endpoint="your- minio -endpoint", access_key="your-access-key", secret_key="your-secret-key", secure=False # 如果使用HTTP而不是HTTPS,将secure参数 设置 为False # 遍历 存储 中的文件和文件夹 def list_objects(bucket_name, prefix=''): objects = minio _client.list_objects(bucket_name, prefix=prefix, recursive=True) for obj in objects: print(obj.bucket_name, obj.object_name) # 调用函数 遍历 文件夹 list_objects("your-bucket-name", "your-folder-prefix") 请将上述代码中的以下参数替换为你自己的信息: - `your- minio -endpoint`: Minio 服务器 的URL - `your-access-key`: Minio 访问 密钥 - `your-secret-key`: Minio 的秘密密钥 - `your-bucket-name`:要 遍历 的存储 名称 - `your-folder-prefix`:要 遍历 的文件夹路径前缀(可选) 这样,你就可以通过调用`list_objects`函数来 遍历 Minio 存储 中的文件和文件夹。