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

MinIO Documentation

mc pipe

语法

Themc pipe命令流传输内容STDIN到目标对象。

以下命令写入内容STDIN到兼容 S3 的存储。

echo "My Meeting Notes" | mc pipe s3/engineering/meeting-notes.txt

该命令具有以下语法:

mc [GLOBALFLAGS] pipe                              \
                 TARGET                            \
                 [--attr "string"]                 \
                 [--checksum "string"]             \
                 [--enc-kms "string"]              \
                 [--enc-s3 "string"]               \
                 [--enc-c "string"]                \
                 [--storage-class, --sc "string"]  \
                 [--tags "string"]
  • Brackets[]表示可选参数。

  • 共享同一行的参数是相互依赖的。

  • 使用竖线分隔的参数|操作符是互斥的。

将示例复制到文本编辑器中,根据需要修改,然后在终端/Shell中运行命令。

Changed in version RELEASE.2023-01-11T03-14-16Z:mc pipe现在支持并发上传,以提高大流量数据流的吞吐量。

参数

TARGET
必需

完整路径别名或命令应运行的前缀。

--attr
可选

为对象添加自定义元数据。

指定键值对为KEY=VALUE\;,用反斜杠和分号分隔每一对(\;例如,--attr key1=value1\;key2=value2\;key3=value3.

--checksum
可选

版本 RELEASE.2024-10-02T08-27-28Z 中的新增内容。

为上传的对象添加校验和。

有效值为: -MD5 - CRC32 - CRC32C - SHA1 - SHA256

该功能需要服务器尾部标头,并可与 AWS 或 MinIO 目标配合使用。

--enc-kms

使用服务器端加密或解密对象SSE-KMS 加密使用客户端管理的密钥。

该参数接受一个键值对,格式为KEY=VALUE

KEY

对象的完整路径为alias/bucket/path/object.ext.

您只能指定顶级路径,以便对该路径中的所有操作使用单一加密密钥。

VALUE

指定外部 KMS 上的现有数据密钥。

查看mc admin kms key create创建数据密钥的参考。

例如:

--enc-kms "myminio/mybucket/prefix/object.obj=mybucketencryptionkey"

您可以通过重复该参数来指定多个加密密钥。

指定前缀路径,对该路径下所有匹配的对象应用加密:

--enc-kms "myminio/mybucket/prefix/=mybucketencryptionkey"
--enc-s3
可选

使用服务器端加密或解密对象SSE-S3 加密使用 KMS 托管密钥。 指定对象的完整路径为alias/bucket/prefix/object.

例如:

--enc-s3 "myminio/mybucket/prefix/object.obj"

您可以多次指定该参数来表示要加密的不同对象:

--enc-s3 "myminio/mybucket/foo/fooobject.obj" --enc-s3 "myminio/mybucket/bar/barobject.obj"

指定前缀路径,对该路径下所有匹配的对象应用加密:

--enc-s3 "myminio/mybucket/foo"
--enc-c
可选

使用服务器端加密或解密对象SSE-C 加密使用客户端管理的密钥。

该参数接受一个键值对,格式为KEY=VALUE

KEY

对象的完整路径为alias/bucket/path/object.ext.

您只能指定顶级路径,以便对该路径中的所有操作使用单一加密密钥。

VALUE

指定一个32字节的RawBase64编码密钥or一个64字节的十六进制编码密钥,用于SSE-C加密。

原始 Base64 编码拒绝 =- 填充的密钥。 省略填充或使用支持 RAW 格式的 Base64 编码器。

  • KEY- 对象的完整路径为alias/bucket/path/object.

  • VALUE- 用于加密对象的32字节RAW Base64编码数据密钥。

例如:

# RawBase64-Encoded string "mybucket32byteencryptionkeyssec"
--enc-c "myminio/mybucket/prefix/object.obj=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"

您可以通过重复该参数来指定多个加密密钥。

指定前缀路径,对该路径下所有匹配的对象应用加密:

--enc-c "myminio/mybucket/prefix/=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"

Note

MinIO 强烈建议在生产工作负载中不要使用 SSE-C 加密。 请通过 SSE-KMS 使用--enc-kms或通过 SSE-S3--enc-s3改为使用参数。

--storage-class, --sc
可选

为新对象设置存储类别TARGET.

亚马逊的文档有关 S3 存储类的更多信息。

--tags
可选

将一个或多个标签应用到目标对象。

指定一个以&符号分隔的键值对列表作为KEY1=VALUE1&KEY2=VALUE2,其中每对代表要分配给对象的一个标签。

全局标志

此命令支持任何全局标志.

示例

编写目录STDIN到本地文件系统

以下命令将STDIN的内容写入到/tmp本地文件系统上的文件夹。

mc pipe /tmp/hello-world.go

将 ISO 映像复制到 S3 存储

以下命令首先流式传输 Debian 的 iso 镜像内容,然后使用该流在 S3 路径创建对象。

cat debian-live-11.5.0-amd64-mate.iso | mc pipe s3/opensource-isos/debian-11-5.iso

将 MySQL 数据库转储流式传输到 S3

以下命令首先流式传输 MySQL 数据库,并使用该流在 S3 上创建备份mc pipe:

mysqldump -u root -p ******* accountsdb | mc pipe s3/sql-backups/backups/accountsdb-sep-28-2022.sql

将文件写入降低冗余存储类别

以下命令接收 STDIN 流并在 S3 的 Reduced Redundancy 存储类别上创建一个对象。

 mc pipe --storage-class REDUCED_REDUNDANCY s3/personalbuck/meeting-notes.txt

将文件复制到具有元数据的 MinIO 部署

以下命令将 MP3 文件上传到别名为myminio和一个musicbucket. 对象写入时带有一些元数据Cache-ControlArtist.

cat music.mp3 | mc pipe --attr "Cache-Control=max-age=90000,min-fresh=9000;Artist=Unknown" myminio/music/guitar.mp3

为上传的对象设置标签

以下命令在别名为 ALIAS 的 MinIO 部署上创建对象myminio在存储桶中mybucket带有两个标签。 MinIO 支持为对象添加最多 10 个自定义标签。

tar cvf - . | mc pipe --tags "category=prod&type=backup" myminio/mybucket/backup.tar