Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion content/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ upstream_modified: true
body_class: landing-page
---

This site targets **[SILO 20261026](/blog/release/silo-20261026/)** (with embedded Console 2.5.1), standalone **[Console 2.6.0](/blog/release/console-2.6.0/)**, **[mcli 20261109](/blog/release/mcli-20261109/)**, **[silo-pkg 3.16.0](/blog/release/pkg-3.16.0/)**, and optional external key service **[KES 20261026](/blog/release/silo-20261026/#kes)**, all built with Go 1.27.3. See the [component matrix](/compatibility/versions/) and [Console 2.7.0 candidate notes](/blog/release/console-2.7.0/).
This site targets **[SILO 20261026](/blog/release/silo-20261026/)** (with embedded Console 2.5.1), standalone **[Console 2.6.0](/blog/release/console-2.6.0/)**, **[mcli 20261109](/blog/release/mcli-20261109/)**, **[silo-pkg 3.16.0](/blog/release/pkg-3.16.0/)**, and optional external key service **[KES 20261026](/blog/release/silo-20261026/#kes)**, all built with Go 1.27.3. See the [component matrix](/compatibility/versions/) and [Console 2.7.0 release notes](/blog/release/console-2.7.0/).

> [!WARNING]
> **SILO is a MinIO fork maintained by the Pigsty community.** It is not affiliated with, endorsed by, or sponsored by MinIO, Inc. “MinIO” is a trademark of MinIO, Inc., used here only to identify the upstream project. See [Attribution](/about/attribution/) for source and licensing details.
Expand Down
2 changes: 1 addition & 1 deletion content/_index.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ upstream_modified: true
body_class: landing-page
---

本站以 **[SILO 20261026](/zh/blog/release/silo-20261026/)** 正式版(内嵌 Console 2.5.1)为基线,配套独立版 **[Console 2.6.0](/zh/blog/release/console-2.6.0/)**、**[mcli 20261109](/zh/blog/release/mcli-20261109/)**、**[silo-pkg 3.16.0](/zh/blog/release/pkg-3.16.0/)** 和可选外部密钥服务 **[KES 20261026](/zh/blog/release/silo-20261026/#kes)**,统一使用 Go 1.27.3。见[组件矩阵](/zh/compatibility/versions/)与 [Console 2.7.0 候选版本说明](/zh/blog/release/console-2.7.0/)。
本站以 **[SILO 20261026](/zh/blog/release/silo-20261026/)** 正式版(内嵌 Console 2.5.1)为基线,配套独立版 **[Console 2.6.0](/zh/blog/release/console-2.6.0/)**、**[mcli 20261109](/zh/blog/release/mcli-20261109/)**、**[silo-pkg 3.16.0](/zh/blog/release/pkg-3.16.0/)** 和可选外部密钥服务 **[KES 20261026](/zh/blog/release/silo-20261026/#kes)**,统一使用 Go 1.27.3。见[组件矩阵](/zh/compatibility/versions/)与 [Console 2.7.0 发布说明](/zh/blog/release/console-2.7.0/)。

> [!WARNING]
> **SILO 是由 Pigsty 社区维护的 MinIO 分支。** 本项目并非 MinIO, Inc. 的关联项目,也未获得其认可、赞助或背书。“MinIO” 是 MinIO, Inc. 的商标,此处仅用于标识上游项目。源码与许可信息详见[归属与署名](/zh/about/attribution/)。
Expand Down
23 changes: 19 additions & 4 deletions content/administration/console/managing-objects.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ upstream_modified: true
---

> [!NOTE]
> **Console 2.5.1 – 2.7.0 updates:** The Tasks drawer tracks bounded transfers and bulk operations (canceling a task stops remaining batches without rolling back completed mutations); Text/Markdown/CSV previews display a notice when truncated at `1 MiB`; ZIP preview failures before the first response byte preserve the upstream S3 error status; and sorting, filtering, and Select All operate on the currently loaded page ([Console 2.5.1](/blog/release/console-2.5.1/#objects)). [Console 2.6.0](/blog/release/console-2.6.0/) adds on-demand folder size scans, bucket usage refresh with optional PostgreSQL worker persistence, pre-create bucket validation, and exact integer quota math; the [Console 2.7.0 candidate](/blog/release/console-2.7.0/) expands the interface to ten languages.
> **Console 2.5.1 – 2.7.0 updates:** The Tasks drawer tracks bounded transfers and bulk operations (canceling a task stops remaining batches without rolling back completed mutations); Text/Markdown/CSV previews display a notice when truncated at `1 MiB`; ZIP preview failures before the first response byte preserve the upstream S3 error status; and sorting, filtering, and Select All operate on the currently loaded page ([Console 2.5.1](/blog/release/console-2.5.1/#objects)). [Console 2.6.0](/blog/release/console-2.6.0/) adds on-demand folder size scans, bucket usage refresh with optional PostgreSQL worker persistence, pre-create bucket validation, and exact integer quota math; [Console 2.7.0](/blog/release/console-2.7.0/) expands the interface to ten languages and fixes usage-worker TLS, scheduling and folder sizes over plain HTTP.

<a id="managing-objects"></a>
<a id="minio-console-managing-objects"></a>
Expand Down Expand Up @@ -139,7 +139,7 @@ The tiering tab allows users with the appropriate permissions to:
## Usage scans (Console v2.6.0+) {#usage-scans}

> [!NOTE]
> **Component availability:** This section describes the usage scan and bucket refresh functionality shipped in [Console v2.6.0](/blog/release/console-2.6.0/) ([PR #70](https://github.com/pgsty/silo-console/pull/70)) and retained in [Console v2.7.0](/blog/release/console-2.7.0/). Server `20261026` embeds Console `v2.5.1`; `pgsty/silo` `main` embeds Console `v2.6.0` for the next Server release. A Console release and the corresponding embedded-Console dependency update in SILO Server are separate delivery steps. The supported integration target is `pgsty/silo`; upstream MinIO compatibility is best effort.
> **Component availability:** This section describes the usage scan and bucket refresh functionality shipped in [Console v2.6.0](/blog/release/console-2.6.0/) ([PR #70](https://github.com/pgsty/silo-console/pull/70)) and retained in [Console v2.7.0](/blog/release/console-2.7.0/), which also fixes the worker issues noted below. Server `20261026` embeds Console `v2.5.1`; `pgsty/silo` `main` embeds Console `v2.6.0` for the next Server release. A Console release and the corresponding embedded-Console dependency update in SILO Server are separate delivery steps. The supported integration target is `pgsty/silo`; upstream MinIO compatibility is best effort.

<!-- Adapted from pgsty/silo-console PR #70, docs/FolderSizes.md.
Copyright (c) 2026 Urbanize. SPDX-License-Identifier: AGPL-3.0-or-later. -->
Expand Down Expand Up @@ -241,6 +241,13 @@ public schema. Browser processes never migrate in response to a request. Use a
verified TLS database URI and a bounded connection pool. Keep worker credentials
out of browser processes.

The worker verifies the storage endpoint like `console server`: it trusts the
system roots, every certificate under `certs/CAs` in `--certs-dir` and Console's
`public.crt`, and honors `CONSOLE_MINIO_SERVER_TLS_SKIP_VERIFY` for the
`CONSOLE_MINIO_SERVER` origin only. It only reads that directory; it neither
creates it nor loads `private.key`. Workers before Console 2.7.0 trusted only
the system roots and failed against a private CA.

Both processes use the identical `CONSOLE_MINIO_SERVER` endpoint and database.
Set `CONSOLE_USAGE_S3_ACCESS_KEY`, `CONSOLE_USAGE_S3_SECRET_KEY` and optionally
`CONSOLE_USAGE_S3_SESSION_TOKEN` only on the worker. Its dedicated S3 policy is:
Expand All @@ -260,12 +267,18 @@ on every status request. API responses are `Cache-Control: no-store`.

The worker subscribes to authenticated storage mutation notifications. Creates,
overwrites, completed multipart uploads and removals invalidate the affected
bucket. Repeated or reordered events coalesce into one queued scan, rather than
bucket. Since Console 2.7.0, deleting a bucket, including a force delete that
emits no object events, also discards its saved totals at once, so a bucket
re-created under the same name never shows them. Repeated or reordered events coalesce into one queued scan, rather than
adding or subtracting potentially duplicated byte deltas. Changes during a scan
request a follow-up generation. Requests are durable in PostgreSQL, prioritized
for explicit refreshes and claimed with expiring, fenced leases. Workers yield
between bounded time slices; pagination resumes only after a whole object key
and all its versions, so a key spanning multiple version pages is not skipped.
Stopping a worker returns its in-progress scans to the queue with their
checkpoints; another worker resumes them at once. When upgrading, stop all
older workers before starting new ones: since 2.7.0 the scan budget is saved
in the checkpoint, and older workers discard it.

The live notification subscription has **no durable replay guarantee**. Startup
and reconnect invalidate existing totals for reconciliation. Frequent bucket
Expand All @@ -277,6 +290,8 @@ recover. A completed scan is a live listing, not an atomic filesystem snapshot.
Without the database, Refresh performs bounded foreground metadata scans and the
UI explicitly says automatic updates are unconfigured. Navigating away stops
those scans; completed totals are not shared across replicas in this mode.
When the server's concurrent scan slots are busy (HTTP 429), Refresh waits and
retries for about 30 seconds before reporting a bucket as failed.

#### Worker and API settings {#worker-and-api-settings}

Expand All @@ -291,7 +306,7 @@ Invalid, missing required or incompatible settings fail closed.
| `POOL_MAX_CONNECTIONS` | 4 | Connections per process |
| `CONCURRENT_SCANS` | 1 | Concurrent worker scan slices |
| `MAX_ENTRIES` | 100000000 | Maximum entries per full bucket scan |
| `SCAN_TIMEOUT` | `30m` | Maximum full-scan elapsed time across slices |
| `SCAN_TIMEOUT` | `30m` | Maximum listing time per full bucket scan, summed across slices; time queued behind other buckets is not counted (before 2.7.0: elapsed wall-clock time) |
| `SCAN_SLICE` | `5s` | Fair scheduling slice, completed at a whole-key boundary |
| `LEASE` | `2m` | Scan and observer lease lifetime |
| `HEARTBEAT` | `15s` | Lease/coverage heartbeat and operation budget |
Expand Down
14 changes: 11 additions & 3 deletions content/administration/console/managing-objects.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ upstream_modified: true
---

> [!NOTE]
> **Console 2.5.1 – 2.7.0 更新:** 新增 Tasks 抽屉用于跟踪分批传输与批量操作进度(取消任务会停止后续批次,但不会回滚已完成的修改);文本/Markdown/CSV 预览超过 `1 MiB` 时会显示截断提示;ZIP 归档预览在输出首字节前失败时会保留原始 S3 错误状态;对象列表的排序、筛选与全选作用于当前已加载的分页([Console 2.5.1](/zh/blog/release/console-2.5.1/#objects))。[Console 2.6.0](/zh/blog/release/console-2.6.0/) 新增按需文件夹大小扫描、带可选 PostgreSQL worker 持久化的存储桶用量刷新、创建前存储桶校验以及精确整数配额换算;[Console 2.7.0 候选版](/zh/blog/release/console-2.7.0/) 将界面扩展为十种语言。
> **Console 2.5.1 – 2.7.0 更新:** 新增 Tasks 抽屉用于跟踪分批传输与批量操作进度(取消任务会停止后续批次,但不会回滚已完成的修改);文本/Markdown/CSV 预览超过 `1 MiB` 时会显示截断提示;ZIP 归档预览在输出首字节前失败时会保留原始 S3 错误状态;对象列表的排序、筛选与全选作用于当前已加载的分页([Console 2.5.1](/zh/blog/release/console-2.5.1/#objects))。[Console 2.6.0](/zh/blog/release/console-2.6.0/) 新增按需文件夹大小扫描、带可选 PostgreSQL worker 持久化的存储桶用量刷新、创建前存储桶校验以及精确整数配额换算;[Console 2.7.0](/zh/blog/release/console-2.7.0/) 将界面扩展为十种语言,并修复用量后台任务的 TLS、调度以及普通 HTTP 下的目录大小计算。

<a id="minio-console-managing-objects"></a>
<a id="id1" data-td-print-local></a>
Expand Down Expand Up @@ -143,7 +143,7 @@ MinIO 不限制单个部署允许创建的存储桶总数。 不过,作为通
## 用量扫描(Console v2.6.0+) {#usage-scans}

> [!NOTE]
> **组件可用性:** 本节介绍随 [Console v2.6.0](/zh/blog/release/console-2.6.0/)([PR #70](https://github.com/pgsty/silo-console/pull/70))发布并在 [Console v2.7.0](/zh/blog/release/console-2.7.0/) 中继续保留的用量扫描与存储桶刷新功能。Server `20261026` 内嵌 Console `v2.5.1`;`pgsty/silo` `main` 已内嵌 Console `v2.6.0` 供下一版 Server 发布使用。Console 发布与 SILO Server 更新内嵌 Console 依赖是两个独立的交付步骤。正式支持的集成目标是 `pgsty/silo`;与上游 MinIO 的兼容性属于尽力而为。
> **组件可用性:** 本节介绍随 [Console v2.6.0](/zh/blog/release/console-2.6.0/)([PR #70](https://github.com/pgsty/silo-console/pull/70))发布并在 [Console v2.7.0](/zh/blog/release/console-2.7.0/) 中继续保留的用量扫描与存储桶刷新功能;2.7.0 同时修复了下文提到的后台任务问题。Server `20261026` 内嵌 Console `v2.5.1`;`pgsty/silo` `main` 已内嵌 Console `v2.6.0` 供下一版 Server 发布使用。Console 发布与 SILO Server 更新内嵌 Console 依赖是两个独立的交付步骤。正式支持的集成目标是 `pgsty/silo`;与上游 MinIO 的兼容性属于尽力而为。

<!-- 改编自 pgsty/silo-console PR #70 的 docs/FolderSizes.md。
Copyright (c) 2026 Urbanize. SPDX-License-Identifier: AGPL-3.0-or-later. -->
Expand Down Expand Up @@ -229,6 +229,10 @@ worker 负责数据库模式迁移,需要其专用数据库 `public` schema
Web 进程不会在处理浏览器请求时执行迁移。使用经过验证的 TLS 数据库连接和有上限的连接池,
不要把 worker 的 S3 凭据交给 Web 进程。

worker 与 `console server` 以相同方式校验存储端点:信任系统根证书、`--certs-dir` 下 `certs/CAs` 中的全部证书
以及 Console 的 `public.crt`,并且只对 `CONSOLE_MINIO_SERVER` 这一个源遵守 `CONSOLE_MINIO_SERVER_TLS_SKIP_VERIFY`。
worker 只读取该目录,既不创建目录,也不加载 `private.key`。Console 2.7.0 之前的 worker 只信任系统根证书,遇到私有 CA 会连接失败。

两个进程应使用相同的 `CONSOLE_MINIO_SERVER` 端点和数据库。
仅在 worker 上设置 `CONSOLE_USAGE_S3_ACCESS_KEY`、`CONSOLE_USAGE_S3_SECRET_KEY`,
需要时再设置 `CONSOLE_USAGE_S3_SESSION_TOKEN`。专用身份的 S3 策略如下:
Expand All @@ -245,17 +249,21 @@ SILO 当前允许将 ListBucket 作为 ListBucketVersions 的兼容性回退,A
API 响应使用 `Cache-Control: no-store`。

worker 订阅经过认证的存储变更通知。创建、覆盖、完成分段上传和删除操作会使相关桶的统计失效。
自 Console 2.7.0 起,删除桶(包括不产生对象事件的强制删除)也会立即丢弃其已保存的统计,同名重建的桶不会显示旧数据。
重复或乱序事件合并为一个待扫描任务,不直接加减可能重复的字节差值;扫描期间发生变更则安排下一代任务。
任务持久化在 PostgreSQL 中,显式刷新优先处理,通过带过期时间和归属校验的租约领取。
worker 在受限时间片之间让出执行权,只在完整对象键及其所有版本处理完毕后保存恢复位置,
因此同一个键跨越多个版本分页时不会漏计。
停止 worker 时,进行中的扫描带着检查点回到队列,由其他 worker 立即续扫。
升级时先停止所有旧版本 worker 再启动新版本:自 2.7.0 起扫描预算保存在检查点中,旧版本 worker 会丢弃这一信息。

实时通知订阅**不保证持久化重放**。启动或重新连接后,会将已有统计标为需要校准。
较频繁的桶清单检查仅发现新桶,不重扫未变化的桶;独立的完整校准负责补偿事件流缺口和未通知的变化。
连接与校准恢复前,界面会显示自动更新状态降级。已完成的扫描仍是实时列表,不是原子文件系统快照。

没有配置数据库时,刷新使用有边界的前台元数据扫描,界面明确提示自动更新未配置。
导航后停止扫描,这种模式下的已完成统计不在不同 Console 副本间共享。
服务器的并发扫描槽位已满(HTTP 429)时,刷新会等待并重试约 30 秒,之后才将桶标为失败。

#### worker 与 API 配置 {#worker-and-api-settings}

Expand All @@ -270,7 +278,7 @@ worker 在受限时间片之间让出执行权,只在完整对象键及其所
| `POOL_MAX_CONNECTIONS` | 4 | 每进程最大连接数 |
| `CONCURRENT_SCANS` | 1 | 并发扫描时间片数量 |
| `MAX_ENTRIES` | 100000000 | 每次完整桶扫描最多处理的条目数 |
| `SCAN_TIMEOUT` | `30m` | 跨时间片的完整扫描总耗时上限 |
| `SCAN_TIMEOUT` | `30m` | 单个桶完整扫描的列举时间上限,跨时间片累计;排队等待其他桶的时间不计入(2.7.0 之前按墙钟时间计算) |
| `SCAN_SLICE` | `5s` | 公平调度时间片,在完整键边界让出执行权 |
| `LEASE` | `2m` | 扫描与事件观察者的租约期限 |
| `HEARTBEAT` | `15s` | 租约/覆盖状态心跳间隔与单次操作时间预算 |
Expand Down
2 changes: 1 addition & 1 deletion content/administration/minio-console/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ You can use the MinIO Console for administration tasks like Identity and Access

SILO embeds the maintained Silo Console in the server. The [Silo Console repository](https://github.com/pgsty/silo-console) documents the downstream source, releases, and compatibility changes; standalone deployment is an advanced integration path and must use a Console version compatible with the target server release.

In [Console v2.7.0](/blog/release/console-2.7.0/), the Console UI supports 10 locales (`en-US`, `zh-CN`, `zh-TW`, `ja-JP`, `ko-KR`, `fr-FR`, `de-DE`, `es-ES`, `pt-BR`, and `ru-RU`), selectable from the top bar or via `?lang=<locale>` ([design record](/blog/design/console-languages/)). Standalone container images (`v2.6.0+`) also include the root CA bundle (`/etc/ssl/certs/ca-certificates.crt`) and a writable `/tmp` directory (`1777`) for outbound HTTPS and temporary file operations.
Since [Console v2.7.0](/blog/release/console-2.7.0/), the Console UI offers ten languages (English, Simplified Chinese, French, German, Russian, Spanish, Brazilian Portuguese, Japanese, Arabic with a right-to-left layout, and Turkish), selectable from the language menu or the command palette ([design record](/blog/design/console-languages/)). Standalone container images (`v2.7.0+`) also include the root CA bundle (`/etc/ssl/certs/ca-certificates.crt`) and a writable `/tmp` directory (`1777`) for outbound HTTPS and temporary file operations.

### Supported Browsers {#supported-browsers}

Expand Down
2 changes: 1 addition & 1 deletion content/administration/minio-console/_index.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ MinIO Console 是一个功能丰富的图形用户界面,提供与 [`mc`](/zh/

SILO 在服务端内嵌持续维护的 Silo Console。[Silo Console 仓库](https://github.com/pgsty/silo-console)记录下游源码、版本发布与兼容性变化;独立部署属于高级集成路径,必须选择与目标服务端版本兼容的 Console 版本。

在 [Console v2.7.0](/zh/blog/release/console-2.7.0/) 中,Console 界面支持 10 种语言(`en-US`、`zh-CN`、`zh-TW`、`ja-JP`、`ko-KR`、`fr-FR`、`de-DE`、`es-ES`、`pt-BR` 与 `ru-RU`),可通过顶栏语言选择器或 `?lang=<locale>` 切换(详见[设计记录](/zh/blog/design/console-languages/))。独立容器镜像(`v2.6.0+`)还内置系统根证书包(`/etc/ssl/certs/ca-certificates.crt`)与可写 `/tmp` 目录(权限 `1777`),用于外部 HTTPS 连接与临时文件操作。
自 [Console v2.7.0](/zh/blog/release/console-2.7.0/) 起,Console 界面提供十种语言(英语、简体中文、法语、德语、俄语、西班牙语、巴西葡萄牙语、日语、阿拉伯语(从右向左布局)与土耳其语),可通过语言菜单或命令面板切换(详见[设计记录](/zh/blog/design/console-languages/))。独立容器镜像(`v2.7.0+`)还内置系统根证书包(`/etc/ssl/certs/ca-certificates.crt`)与可写 `/tmp` 目录(权限 `1777`),用于外部 HTTPS 连接与临时文件操作。

<a id="id3" data-td-print-local></a>

Expand Down
Loading
Loading