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

相关推荐
明月与玄武43 分钟前
Spring Boot中的拦截器!
java·spring boot·后端
菲兹园长1 小时前
SpringBoot统一功能处理
java·spring boot·后端
muxue1781 小时前
go语言封装、继承与多态:
开发语言·后端·golang
开心码农1号2 小时前
Go语言中 源文件开头的 // +build 注释的用法
开发语言·后端·golang
北极象2 小时前
Go主要里程碑版本及其新增特性
开发语言·后端·golang
lyrhhhhhhhh2 小时前
Spring框架(1)
java·后端·spring
喝养乐多长不高3 小时前
Spring Web MVC基础理论和使用
java·前端·后端·spring·mvc·springmvc
莫轻言舞4 小时前
SpringBoot整合PDF导出功能
spring boot·后端·pdf
玄武后端技术栈4 小时前
什么是死信队列?死信队列是如何导致的?
后端·rabbitmq·死信队列
老兵发新帖6 小时前
NestJS 框架深度解析
后端·node.js