github pgsty/mc RELEASE.2026-11-09T00-00-00Z

one hour ago

mcli 20261109

mcli 20261109 is released. Package version: 20261109000000.0.0 · Tag: RELEASE.2026-11-09T00-00-00Z · Source: e1d4cc5abfe0.

Standalone archives, Linux packages and checksums are attached. Docker images for linux/amd64 and linux/arm64 are published at pgsty/mc:RELEASE.2026-11-09T00-00-00Z and pgsty/mc:latest. The container publication workflow built them from the verified Linux release archives and ran both images before promotion. Existing Server and Console builds retain their embedded client versions.

English

This maintenance release fixes data-safety and automation defects found in the pre-release review:

  • Keep rm --purge --dry-run read-only, validate namespace protection for every target, and return failure for permission or WORM errors while continuing independent removals.
  • Resolve every copy/move source alias independently. Reject known self-moves before copying or deleting the source, including equivalent local paths, links and endpoint addresses. Proxied endpoints are no longer refused solely because local DNS cannot resolve them; direct unresolved endpoints still fail.
  • Download the requested od multipart sequence, close readers reliably, and reject malformed operands, zero part sizes and overflow before modifying the target.
  • Return nonzero for partial copy/move preparation failures and failed IAM or bucket metadata imports. Keep copy counters race-free and drain workers on cancellation.
  • Apply explicit tags to server-side and streaming transfers, including empty tags and --preserve. Reject malformed attributes before transfer, while accepting empty entries such as trailing or repeated semicolons in cp, mv, mirror and pipe.
  • Generate correctly quoted POSIX share upload commands. Improve batch paused/skipped states, live and saved details, terminal-state handling, and diagnostic units.
  • Adopt silo-pkg v3.16.0 and the networking/crypto dependency floors, retain Go 1.27.3 and the existing upstream minio-go commit, and update gjson, cpuid and YAML. The container definition also supports non-root UIDs with HOME=/ through a writable default configuration directory.

Automation migration:

  • After a source-preparation error, cp and mv continue processing independent sources and return 1 overall. Successful moves delete their sources; successful work is not rolled back.
  • JSON totalCount and totalSize are cumulative prepared totals, not a final workload or progress-percentage denominator. Check the final exit status and errors.
  • Generated share upload output requires a POSIX shell. After replacing placeholders with correctly quoted values, run a command stored in upload with sh -c "$upload"; direct $upload expansion and Windows cmd.exe do not interpret the quoting correctly.
  • IAM fallback requires NotImplemented or XMinioAdminVersionMismatch. A successful query of a failed batch job still exits 0; inspect the job state and skip counters.
  • The move guard cannot infer arbitrary backend identity through proxies or distinct endpoints. Shared-IP virtual hosts may be rejected; verify storage independence before using an explicit copy/verify/delete sequence.

The maintained server target is PGSTY SILO. Upstream MinIO and other S3-compatible services remain best effort.

Full English release notes

中文

mcli 20261109 已正式发布。 本次维护版本修复发布前审查中确认的数据安全与自动化问题:

  • rm --purge --dry-run 保持只读,对所有目标检查命名空间保护;权限或 WORM 错误返回失败,同时继续处理其他独立删除。
  • 每个复制、搬移源使用自己的别名。在复制或删除源之前拦截已知自身搬移,覆盖等价本地路径、链接与端点地址。代理可访问的端点不再仅因本地 DNS 失败而被拒绝;无法解析的直连端点仍失败。
  • od 按请求顺序下载分片并正确关闭 reader,在修改目标前拒绝非法参数、零分片大小和溢出。
  • 部分复制、搬移准备失败,以及 IAM 或桶元数据导入失败返回非零;消除复制计数器竞态,并在取消时收完工作线程结果。
  • 显式标签对服务端和流式传输均生效,包括空标签与 --preserve。非法属性在传输前报错;cp、mv、mirror、pipe 接受末尾或连续分号等空条目。
  • share upload 生成正确引用的 POSIX 命令;改进 batch 暂停与跳过状态、实时与保存详情、终态处理和诊断单位。
  • 升级 silo-pkg v3.16.0 及 networking/crypto 安全版本下限,保持 Go 1.27.3 和既有上游 minio-go 提交,并更新 gjson、cpuid 和 YAML。容器定义也为 HOME=/ 的非 root UID 提供可写的默认配置目录。

自动化脚本迁移:

  • 准备某个源失败后,cp、mv 继续处理其他独立源,整体返回 1。成功移动的源会被删除,成功操作不回滚。
  • JSON 的 totalCount、totalSize 是累计准备总量,不是最终任务总量或进度百分比分母。应检查最终退出码和错误记录。
  • share upload 输出需要 POSIX shell。正确引用并替换占位符后,保存在 upload 中的命令用 sh -c "$upload" 执行;直接展开 $upload 或使用 Windows cmd.exe 都不能正确解释其中的引用。
  • IAM 仅在收到 NotImplemented 或 XMinioAdminVersionMismatch 时回退旧 API。成功查询失败的 batch 任务仍返回 0,应检查任务状态和跳过计数。
  • 搬移保护无法推断任意代理或不同端点背后的存储身份,共享 IP 的虚拟主机也可能被拒绝。采用显式复制、核验、删除流程前,必须确认存储实际独立。

正式维护目标为 PGSTY SILO,对上游 MinIO 和其他 S3 兼容服务保持尽最大努力的兼容。附件提供独立归档、Linux 软件包及校验文件。Docker 镜像 pgsty/mc:RELEASE.2026-11-09T00-00-00Z 与 pgsty/mc:latest 已发布,支持 linux/amd64 和 linux/arm64;两种架构均使用已验证的 Linux 发布程序,并在推送最终标签前实际运行核验。既有 Server、Console 构建中的客户端不会自动替换。

完整中文发布说明

Source validation / 源码验证

Go tests · Cross-compilation · Vulnerability check · Release pipeline gate · Documentation CI

Artifact validation / 产物验证

Release CI passed for the signed tag and source commit above. All 19 attached assets have been checked against their GitHub SHA-256 digests. The six platform archives report the exact source commit with vcs.modified=false; all six Linux packages contain the matching archive binary and required legal files. The macOS arm64 and Linux arm64 binaries were also run successfully.

All 11 build attestations were verified against this repository, release workflow, tag and source commit. Both RPMs were signed with the maintainer's public key, fingerprint 9592A7BC7A682E7333376E09E7935D8DB9BD8B20, and verified with both native RPM and EL9 RPM 4.16.1.3. Their SHA-256 sidecars reflect the signed bytes. RPMs are authenticated by these signatures rather than build attestations, because signing changes the package bytes after the build.

发布 CI 已针对上述签名标签和源码提交通过。19 个附件均与 GitHub 记录的 SHA-256 摘要一致;六个平台归档中的程序均来自同一源码提交,且 vcs.modified=false。六份 Linux 软件包的程序载荷与对应归档一致,并包含必要的法律文件。macOS arm64 与 Linux arm64 程序均已实际运行验证。

11 份构建来源证明均已核验仓库、发布工作流、标签和源码提交。两份 RPM 使用维护者公钥对应的密钥签名,指纹为 9592A7BC7A682E7333376E09E7935D8DB9BD8B20,并通过本机 RPM 和 EL9 RPM 4.16.1.3 验签;对应 SHA-256 文件已按签名后的内容更新。RPM 在构建后签名会改变包字节,因此使用这些签名验证,不纳入构建来源证明。

Changes since 20261026 · Changelog

Don't miss a new mc release

NewReleases is sending notifications on new releases.