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

相关推荐
keep one's resolveY1 小时前
SpringBoot实现重试机制的四种方案
java·spring boot·后端
阿丰资源3 小时前
基于Spring Boot的电影城管理系统(直接运行)
java·spring boot·后端
IT_陈寒3 小时前
SpringBoot自动配置的坑差点让我加班到天亮
前端·人工智能·后端
消失的旧时光-19434 小时前
Spring Boot 工程化进阶:统一返回 + 全局异常 + AOP 通用工具包
java·spring boot·后端·aop·自定义注解
追风筝的人er5 小时前
SpringBoot+Vue3 企业考勤如何处理法定假期?节假日方案、调休补班与工作日判断链路拆解
前端·vue.js·后端
金銀銅鐵6 小时前
[git] 如何丢弃对一个文件的改动?
git·后端
橘子海全栈攻城狮6 小时前
【最新源码】养老院系统管理A013
java·spring boot·后端·web安全·微信小程序
smallyoung6 小时前
具有反思能力的 Agentic RAG 实战:用 LangChain4j 实现 CRAG 纠错检索
人工智能·后端
EthanYuan6 小时前
💡RAG实践:从云知识库迁移到PostgreSQL ,并使用PGVector实现向量存储
后端
直奔標竿7 小时前
Java开发者AI转型第二十六课!Spring AI 个人知识库实战(五)——联网搜索增强实战
java·开发语言·人工智能·spring boot·后端·spring