文档基于2025-10-10日社区最终版构建     
切换到英文版    进入演示系统    进入交流社区

MinIO Documentation

数据压缩

概述

MinIO Server 支持压缩对象以减少磁盘使用量。 对象在写入磁盘前通过 PUT 操作进行压缩,在发送给客户端前通过 GET 操作进行解压缩。这使得压缩过程对客户端应用程序和服务完全透明。

根据数据类型的不同,压缩也可能提高整体吞吐量。 生产环境中每个可用CPU核心的写入吞吐量通常为每秒500MB或更高。 每个CPU核心的解压缩速度约为每秒1GB或更高。

为了获得最佳效果,请查阅 MinIO 的推荐的硬件配置或使用MinIO SUBNET直接与工程师合作分析压缩性能。

默认文件类型

数据压缩是一个全局选项,配置的设置适用于部署中的所有存储桶。 启用数据压缩后,默认会压缩以下类型的数据:

文件扩展名

Media (MIME) Types

.txt

.log

.csv

.json

.tar

.xml

.bin

text/*

application/json

application/xml

binary/octet-stream

您可以通过指定所需的文件扩展名来控制哪些对象被压缩media (MIME) 类型.

现有对象不会被修改

启用、禁用或更新部署的压缩设置不会修改现有对象。 新对象将根据其创建时生效的设置进行压缩。

排除的文件类型

有些数据无法被有效压缩。 例如:视频、已经压缩的数据,或者小于4KiB的文件。 即使已在压缩配置中指定,MinIO也不会压缩常见的不可压缩文件类型。

这些类型的对象永远不会被压缩:

Object Type

文件扩展名

Media (MIME) Type

音频

audio/*

视频

*.mp4
*.mkv
*.mov

video/*

图像

*.jpg
*.png
*.gif

application/x-compress(LZW)

7ZIP 压缩

*.7z

BZIP2 压缩

*.bz2

application/x-bz2

GZIP 压缩

*.gz

application/x-gzip

RAR 压缩

*.rar

LZMA 压缩

*.xz

application/x-xz

ZIP 压缩

*.zip

application/zip
application-x-zip-compressed

小于 4 KiB

数据压缩与加密

MinIO 支持加密压缩对象,但不建议在未进行风险评估的情况下同时使用压缩和加密功能。 在为压缩对象启用加密前,请仔细评估您环境的安全需求。

MinIO 透明数据压缩有关压缩与加密结合的更多信息。MinIO SUBNET用户可以使用登录并与我们的工程和安全团队合作,共同评审加密方案。

教程

启用数据压缩

要启用数据压缩,请使用mc admin config setto set thecompression密钥enable选项on.

以下为新对象启用压缩功能默认类型:

mc admin config set ALIAS compression enable=on
  • 替换ALIAS随着alias已配置的 MinIO 部署。

现有未压缩的对象不会被修改。 要配置压缩哪些扩展名和类型,请参阅配置要压缩的对象.

要查看当前的压缩设置:

mc admin config get ALIAS compression

禁用数据压缩

要禁用数据压缩,请使用mc admin config setto set thecompression密钥enable选项off:

以下禁用新对象的数据压缩:

mc admin config set ALIAS compression enable=off
  • 替换ALIAS随着alias已配置的 MinIO 部署。

现有压缩对象不会被修改。

配置要压缩的对象

通过指定所需的文件扩展名和媒体类型来配置要压缩的对象extensions or mime_types参数。

默认数据压缩配置会压缩以下类型的数据:

文件扩展名

Media (MIME) Types

.txt

.log

.csv

.json

.tar

.xml

.bin

text/*

application/json

application/xml

binary/octet-stream

默认排除的扩展名和类型永远不会被压缩

有些对象无法被高效压缩。 MinIO 不会尝试压缩这些对象,即使它们被包含在extensions or mime_types参数。 请参阅排除的文件类型有关排除类型的列表。

以下部分介绍如何为所需的文件扩展名和媒体类型配置压缩。

压缩所有可压缩对象

压缩除以下对象外的所有对象默认排除类型, 使用mc admin config setto set thecompression密钥extensionsmime_types清空列表的选项:

mc admin config set ALIAS compression extensions= mime_types=
  • 替换ALIAS随着alias已配置的 MinIO 部署。

按文件扩展名压缩对象

要压缩具有特定文件扩展名的对象,请使用mc admin config set设置所需的文件扩展名在extensions论点。

以下命令压缩扩展名为.bin.txt:

mc admin config set ALIAS compression extensions=".bin, .txt"
  • 替换ALIAS随着alias已配置的 MinIO 部署。

新的文件扩展名列表已替换之前的列表。 要添加或删除扩展名,请重复extensions要压缩的扩展程序完整列表命令。

以下添加.pdf添加到之前示例中的文件扩展名列表:

mc admin config set ALIAS compression extensions=".bin, .txt, .pdf"
  • 替换ALIAS随着alias已配置的 MinIO 部署。

按媒体类型压缩对象

要压缩特定媒体类型的对象,请使用mc admin config setto set thecompression密钥mime_types将选项转换为所需类型的列表。

以下示例压缩以下类型的文件application/jsonimage/bmp:

mc admin config set ALIAS compression mime_types="application/json, image/bmp"
  • 替换ALIAS随着alias已配置的 MinIO 部署。

新的媒体类型列表已替换之前的列表。 要添加或删除类型,请重复mime_types包含要压缩的完整类型列表的命令。

您可以使用*指定单个媒体类型的所有子类型。 以下命令添加所有text将以下子类型添加到上一个示例的列表中:

mc admin config set ALIAS compression mime_types="application/json, image/bmp, text/*"
  • 替换ALIAS随着alias已配置的 MinIO 部署。