使用MinIO时出现“Access Denied“错误-小记

【情况说明】在使用MinIO进行文件服务存储时,突然某个文件桶无法上传和下载,在下载时,接口返回"403",查看错误内容(如下):

javascript 复制代码
<Error>
  <Code>AccessDenied</Code>
  <Message>Request has expired</Message>
  <Key>key-of-the-resource</Key>
  <BucketName>bucket-name</BucketName>
  <Resource>/path-to/teh-resource</Resource>
  <RequestId>16FC78B1C6185XC7</RequestId>
  <HostId>5d405266-91b9-XXXX-ae27-c48694f203d5</HostId>
</Error>

【排查1】去查看Nginx配置,未发生改变故排除; 【排查2】MinIO文件服务进行了重启,重启后该文件通无法使用,查看桶的相关权限。发现变成了"private",因此猜测时这个位置问题。

【解决2-1】直接浏览器访问http://x.x.x.x:9001 时,在网页中可以设置,但发现在编辑后保存修改内容的接口却报错,无法进行修改。

【解决2-2】希望修改Minio的配置文件将目标文件桶的权限修改,故此需要引入工具'mc'。

【mc介绍】mc 是 MinIO 提供的一个命令行工具,全称为 MinIO Client。它是一个功能强大的工具,用于管理 MinIO 服务器以及与 S3 兼容的对象存储服务。通过 mc,你可以轻松执行诸如文件上传、下载、存储桶管理、用户管理、策略设置等操作。

【背景】当前情况时已经在服务器安装过了minio服务,因此只需单独安装mc工具。

1、Linux 安装 mc

bash 复制代码
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/

2、验证安装

css 复制代码
mc --version

3、配置 mc 连接到 MinIO

bash 复制代码
mc alias set myminio http://localhost:9000 YOUR_ACCESS_KEY YOUR_SECRET_KEY
  • myminio:为 MinIO 设置的别名。
  • http://localhost:9000:MinIO 服务的地址。// 最好为IP地址
  • YOUR_ACCESS_KEY 和 YOUR_SECRET_KEY:在启动 MinIO 时生成的访问密钥和秘密密钥。
  • 如果忘记密钥,可以通过以下方式查看:
  • 查看日志文件(通常在启动时会打印密钥)。
  • 如果需要重置密钥,可以重新启动 MinIO 并指定新的密钥。 4、使用 mc 管理 MinIO
arduino 复制代码
// 列出存储桶(服务名:myminio)
mc ls myminio

// 创建存储桶(桶名:mybucket)
mc mb myminio/mybucket

// 设置存储桶为公开访问
mc anonymous myminio/mybucket

// 查看存储桶策略
mc policy get myminio/mybucket

【解决异常问题最终的方式就是将桶器权限设置为公开访问"public",使用上述命令后,在刷新查看是否成功。修改为public后即可下载上传】

【补充】 查看minio是否运行

perl 复制代码
ps aux | grep minio

通过这个也可以查看minio的data文件内容。

相关推荐
To_OC4 小时前
手写 AI 编程 Agent 的命令执行工具:我被 child_process 坑出来的实战经验
后端·node.js·agent
逝水无殇6 小时前
C# 异常处理详解
开发语言·后端·c#
考虑考虑9 小时前
Sentinel安装
java·后端·微服务
IT_陈寒9 小时前
SpringBoot自动配置失灵?你可能忘了这个关键注解
前端·人工智能·后端
碎碎念_4929 小时前
SpringBoot + Vue 前后端分离从 0 到 1 完整环境配置流程
vue.js·spring boot·后端
逝水无殇9 小时前
C# 文件的输入与输出详解
开发语言·数据库·后端·c#
YIAN10 小时前
从手写 Agent 工具到 MCP 协议:一文搞懂大模型跨进程跨语言工具调用
后端·agent·mcp
小兔崽子去哪了10 小时前
Docker 删除镜像后磁盘空间没有释放?
后端·docker·容器
高明珠11 小时前
麒麟 V10 SP1 排查实录:ttyS5 每 10 秒莫名收到一批报文,元凶是 eGTouchD
后端
卷无止境11 小时前
Python FFI 技术深度解析:ctypes、cffi 与 pybind11 的性能差异与实践挑战
后端·python