MinIO Studio
A MinIO and S3-compatible object storage client for VS Code: browse buckets, preview files, monitor the cluster, and manage users, policies and access keys, all without leaving the editor.
English · 简体中文说明在后半部分
Starting with RELEASE.2025-05-24, the MinIO community console ships with only the object browser. User and policy management, monitoring and bucket settings moved to the mc admin command line. MinIO Studio calls the admin APIs the server still provides and brings those features back as a graphical UI inside VS Code.
Features
- Object browser in the sidebar: connections → buckets → folders → objects, with paged loading for large folders. A path box jumps straight to
bucket/path, s3://bucket/path or a full URL. You can bookmark buckets and folders.
- File operations: upload files or whole folders (multipart for large files, with progress and cancel), download objects, folders or entire buckets, create folders, rename and move, copy to another bucket, delete recursively. Multi-select works for batch download and delete.
- Share links: presigned download URLs valid from 1 hour to 7 days. You can also copy the path, S3 URI or direct URL.
- Edit objects in place: open an object as an editable copy; saving it in VS Code uploads it back.
- File preview: images with zoom and pan, audio and video, text and code with line numbers, formatted JSON, CSV/TSV as a table, Markdown and PDF. A details pane shows metadata, editable tags, versions (download, restore or delete a version), retention and legal hold.
- Monitoring dashboard:
- Cluster overview: servers, drives, capacity, erasure coding, and KMS, logging and notification target status.
- Live metrics read directly from MinIO's Prometheus endpoint, with no Prometheus server to deploy: S3 request and error rates, traffic, CPU and memory per node, and calls per S3 API.
- Bucket usage and object size distribution.
- A real-time trace of S3 calls, server logs, and a live bucket event listener.
- Identity & access: users, groups, policies (create from templates or edit the JSON, and see who a policy is attached to), and access keys (service accounts) with expiry and inline policies.
- Bucket settings: versioning, tags, quota, default encryption (SSE-S3 / SSE-KMS), object lock retention, anonymous access and bucket policy, lifecycle rules and event notifications. Replication is shown read-only.
- Three sign-in methods: username and password, LDAP / Active Directory (via STS, renewed automatically) or access keys. Self-signed TLS certificates are supported, and a Test connection button checks everything before you save.
- English and Chinese UI, following VS Code's display language by default.
Getting started
- Click the MinIO Studio icon (a hexagon with an "M") in the Activity Bar.
- Click Add Connection. Enter the S3 API endpoint, such as
https://minio.example.com:9000 (not the console port), choose a sign-in method and click Test connection.
- Expand the connection to browse buckets, and click an object to preview it. Hover over a connection for the Monitoring Dashboard and Identity & Access buttons, or over a bucket for Bucket Settings. The same actions are on the right-click menu.
Configuration
Settings live in ~/.x1/minio-studio/conf.yaml. Connections you add in the UI are written there, and you can also edit the file by hand: saving it in VS Code applies the change immediately. If you edit it in another program, click Refresh in the sidebar.
language: auto # UI language: auto (follow VS Code) / en / zh-cn
connections:
- id: a1b2c3d4e5f6 # generated; bookmarks refer to it
name: Production MinIO
endpoint: https://minio.example.com:9000 # S3 API address, not the console port
authType: password # password | ldap | keys (keys when omitted)
username: admin # for password / ldap
password: "******"
region: us-east-1 # optional
pathStyle: true # optional, default true
insecure: false # optional; true for self-signed certificates
- id: 0f9e8d7c6b5a
name: Archive cluster
endpoint: http://10.0.0.8:9000
accessKey: AKIAEXAMPLE # for keys (or when authType is omitted)
secretKey: "******"
bookmarks:
- connection: a1b2c3d4e5f6
bucket: logs
prefix: 2026/11/
name: This month's logs
pageSize: 500 # objects listed per folder page
previewMaxMB: 50 # media larger than this is not downloaded automatically
shareExpiry: 604800 # default share link lifetime in seconds (max 7 days)
refreshSeconds: 5 # dashboard sampling interval in seconds
The file contains secrets, so the directory is created with mode 0700 and the file with mode 0600. Writes only change the keys that changed and keep anything you added by hand.
Permissions
- Browsing and managing objects needs ordinary S3 permissions.
- Monitoring, identity & access and quotas use the MinIO admin API. They need the root user, or a user with an
admin:* policy such as consoleAdmin. Without it, the affected pages show a notice, and the dashboard falls back to the buckets your account can see.
- LDAP accounts:
- MinIO only issues STS credentials to LDAP users or groups that have a policy attached (
mc idp ldap policy attach).
- MinIO's Prometheus endpoint rejects STS credentials. The dashboard therefore offers to create a metrics-only access key (limited to
admin:Prometheus) for LDAP connections.
Limitations
- Server configuration is not included: OpenID / LDAP setup, notification targets, tiers, site replication, KMS, server config and diagnostics. Use
mc admin for these.
- Replication rules are read-only; configure them with
mc replicate.
- Audio and video are downloaded to a local cache before playback, subject to the preview size limit.
Source and feedback
MinIO Studio(简体中文)
VS Code 里的 MinIO / S3 兼容对象存储客户端:浏览存储桶、预览文件、监控集群,管理用户、策略和访问密钥,不用离开编辑器。
MinIO 社区版从 RELEASE.2025-05-24 起,控制台只剩对象浏览器,用户、策略、监控、桶设置都要改用 mc admin 命令行。这个插件直接调用服务端仍然保留的管理接口,把这些功能补回到图形界面上。
功能
侧边栏:连接 → 桶 → 目录 → 对象
多个连接,三种登录方式:
- 用户名 / 密码(默认):与 MinIO 控制台的登录相同,root 用户或内置用户都可以。
- LDAP / AD 账号:通过 STS(
AssumeRoleWithLDAPIdentity)换取临时凭据,有效期 12 小时,到期前自动续期;服务端判定令牌失效时也会自动重新登录。
- 访问密钥:Access Key / Secret Key。
每个连接还可以设置区域、路径风格访问、是否跳过 TLS 证书校验(自签名证书)。表单里有「测试连接」,会依次检查 LDAP 登录(如果选了)、S3 和管理接口。
按需分页加载:每个目录一次列 500 条(可在设置里改),剩下的点「加载更多」。状态栏显示选中目录下已列出的文件夹数、对象数和总大小。
定位框:粘贴 bucket/path、s3://bucket/path,或者带端点的完整 URL,按回车就在树里展开到它。
书签:右键桶或目录选「添加书签」,书签显示在工具栏第二排。
对象操作:
- 上传文件或文件夹(保留目录结构,按扩展名设置 Content-Type)
- 下载对象,或整个目录 / 桶
- 新建文件夹(可以一次建多级)
- 重命名 / 移动对象和目录
- 复制到其他桶
- 删除,目录会连同里面的内容一起删
- 复制路径、S3 URI、直链
- 分享链接:预签名下载链接,有效期 1 小时到 7 天
可以多选(⌘/Ctrl 加选、⇧ 连选)后批量下载或删除。大文件自动分片上传,所有传输都有进度条,可以取消。
在编辑器中打开:下载一份可编辑的副本,在 VS Code 里保存就自动上传回原处。
对象预览(编辑区)
在树里点一个对象就会打开预览,用方向键在树里移动,预览跟着切换。
- 图片:可缩放、平移,透明部分用棋盘格底显示。
- 音频、视频:用 VS Code 内置的播放器。H.264/AAC 这类解码器 VS Code 没带,播放不了时可以一键在浏览器里打开。
- 文本 / 代码:等宽显示,带行号。只读前 2 MB;可切换折行。
- JSON:格式化并着色。
- CSV / TSV:画成表格。
- Markdown:一键用 VS Code 的 Markdown 预览打开。
- PDF:在浏览器里打开(webview 渲染不了 PDF)。
- 右侧详情:
- 元数据
- 标签(可以修改)
- 版本列表:查看或下载某个版本、恢复为最新版本、永久删除某个版本
- 保留期
- 法律保留:桶开了对象锁时可以开关
- 超过「预览大小上限」(默认 50 MB)的媒体文件不会自动下载,需要手动点「仍然预览」。
监控面板(每个连接一个)
- 概览:服务器和磁盘的在线数、桶与对象数、已用容量、运行时长、纠删码配置、原始容量与可用容量。每台服务器显示一张磁盘表(路径、状态、用量、池 / 集 / 盘编号),另有 KMS、日志、审计、通知目标的状态。
- 实时指标:直接读取 MinIO 的 Prometheus 指标接口,不需要另外部署 Prometheus。插件用当前连接的密钥现签令牌,与
mc admin prometheus generate 生成的相同。
- 图表:S3 请求与错误速率、收发流量、各节点 CPU 与内存、处理中与排队的请求、节点间流量。
- 表格:MinIO 进程、磁盘活动、各 S3 API 的调用速率。
- 另有原始指标搜索。
- 服务端大约每 10 秒更新一次这些指标,速率按两次数值变化之间的间隔计算。
- 桶用量:由后台扫描器统计,显示各桶的大小、对象数、版本数、删除标记数和对象大小分布。点桶名可以进入桶设置。
- 追踪:每个 S3 调用一行,显示耗时、首字节时间、状态码、流量和客户端。可以按类型(S3 / 内部 / 存储 / OS)、只看错误、耗时阈值过滤,点一行查看完整 JSON。
- 日志:服务端的控制台日志,可以按类型、节点过滤。
- 事件监听:选一个桶,按前缀、后缀和事件类型(PUT / GET / DELETE)实时查看对象的增删。
身份与访问(每个连接一个)
- 用户:创建(同时分配策略和组)、启用 / 停用、修改 Secret Key、管理所属的组、挂载策略、删除。
- 组:创建、管理成员和策略、启用 / 停用、删除。删除时会先把成员移出,用户本身保留。
- 策略:列表带语句摘要;可以从模板新建(单桶只读、读写、只写,或完全管理员),也可以直接编辑 JSON;能查看谁挂了某个策略。内置策略不能删除。
- 访问密钥(服务账号):按所属用户列出,可以创建。创建时可以指定名称、描述、过期时间,以及用来收窄权限的内联策略;Access Key 和 Secret Key 可以自定义,不填就自动生成。之后可以修改、启用 / 停用、删除。
桶设置(每个桶一个)
快速开始
- 点活动栏里的 MinIO Studio 图标(六边形里一个 M)。
- 点「添加连接」,填 S3 API 地址(如
https://minio.example.com:9000,不是控制台端口),选登录方式,点「测试连接」。
- 展开连接即可浏览桶,点对象打开预览。鼠标移到连接上,行尾有「监控面板」「身份与访问」按钮;移到桶上有「桶设置」。右键菜单里也有这些操作。
配置文件
全部配置保存在 ~/.x1/minio-studio/conf.yaml。在界面上新建或编辑连接都会写到这里,也可以手工编辑:在 VS Code 里保存这个文件后会立即生效;在别处改的,到侧边栏点「刷新」后生效。
language: auto # 界面语言:auto 跟随 VS Code / zh-cn / en
connections:
- id: a1b2c3d4e5f6 # 自动生成,书签靠它对应连接
name: 生产环境 MinIO
endpoint: https://minio.example.com:9000 # S3 API 地址,不是控制台端口
authType: password # password 用户名/密码 | ldap LDAP/AD 账号 | keys 访问密钥(省略时就是 keys)
username: admin # authType 为 password / ldap 时
password: "******"
region: us-east-1 # 可选
pathStyle: true # 可选,默认 true
insecure: false # 可选,自签名证书时设为 true
- id: 0f9e8d7c6b5a
name: 归档集群
endpoint: http://10.0.0.8:9000
accessKey: AKIAEXAMPLE # authType 为 keys(或省略)时
secretKey: "******"
- id: 1a2b3c4d5e6f
name: 公司 LDAP
endpoint: https://s3.corp.example:9000
authType: ldap
username: zhangsan
password: "******"
metricsAccessKey: … # 可选:读指标专用的访问密钥,由监控面板一键创建
metricsSecretKey: …
bookmarks:
- connection: a1b2c3d4e5f6
bucket: logs
prefix: 2026/11/
name: 本月日志
pageSize: 500 # 每个目录一次列多少条
previewMaxMB: 50 # 预览自动下载的大小上限
shareExpiry: 604800 # 分享链接默认有效期(秒),最长 7 天
refreshSeconds: 5 # 监控面板的采样间隔(秒)
文件里保存着 Secret Key,所以目录权限是 0700,文件是 0600。写入方式是读—合并—写:只改动发生变化的键,手工加的键原样保留;先写临时文件再改名,中途崩溃也不会留下半个文件。
权限
- 浏览和管理对象只需要普通的 S3 权限。
- 监控、身份与访问、配额这几类功能要调用管理接口,需要 root 用户,或者挂了
consoleAdmin 这类带 admin:* 权限策略的用户。权限不够时,对应页面会显示提示,监控面板会退回只显示当前账号能看到的桶。
- LDAP 账号:
- MinIO 要求先给 LDAP 用户或其所在的组挂上策略(
mc idp ldap policy attach),否则 STS 会拒绝登录,错误信息会原样显示在「测试连接」里。
- MinIO 的 Prometheus 指标接口不接受 STS 临时凭据。监控面板的「实时指标」页会提示,点一下就能为这个账号创建一个只能读指标的访问密钥(策略收窄到
admin:Prometheus),保存在这条连接里。
- 开启 LDAP 后,MinIO 的内置用户就停用了,身份与访问面板里的「用户」「组」只管内置身份;LDAP 用户与组的策略挂载请用
mc idp ldap policy。
已知限制
- 没有实现服务器配置类功能:OpenID / LDAP、通知目标、存储层、站点复制、KMS、服务器配置、诊断工具。这些请用
mc admin。
- 复制规则只能查看,配置请用
mc replicate。
- 视频和音频要先完整下载到本机缓存才能播放,受「预览大小上限」限制。
源码与反馈
- 源码:https://gitee.com/Lupeed/vscode-minio-plugin
- 问题反馈:https://gitee.com/Lupeed/vscode-minio-plugin/issues
- 调研记录(官方控制台功能演变与功能对照):https://gitee.com/Lupeed/vscode-minio-plugin/blob/master/docs/research.md
- 开发说明与代码结构:https://gitee.com/Lupeed/vscode-minio-plugin/blob/master/docs/development.md
| |