使用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文件内容。

相关推荐
学长毕业设计6 小时前
基于SpringBoot的公益基金管理系统(源码+文档+讲解视频)
java·spring boot·后端
东小西6 小时前
【SAA实战】第 3 篇 · 工具调用全攻略:把业务能力交给 Agent 自己调度
java·后端·spring
东小西6 小时前
【SAA实战】第 4 篇 · Agent 短期记忆:saver 让 Agent 跨轮记得住(threadId 隔离)
java·后端·spring
阿kun要赚马内6 小时前
MySQL 索引基础
后端·mysql
码事漫谈7 小时前
我啥都能做,却不知道做什么了
后端
geovindu7 小时前
CSharp: 万年历
开发语言·后端·c#·.net
独泪了无痕9 小时前
SpringBoot Event事件机制,轻松实现业务解耦
spring boot·后端·spring
悲且狂9 小时前
SpringBoot项目改造注意事项(旧项目框架复用)
java·spring boot·后端
敲代码的嘎仔10 小时前
28届后端开发-海康威视日常实习一面(已OC)
java·开发语言·后端·面试·海康威视·实习·大厂
IT_陈寒10 小时前
JavaScript数组排序踩的坑,差点让我加班到凌晨
前端·人工智能·后端