文档

mc pipe

语法

mc 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"]
  • 方括号 [] 表示可选参数。

  • 同一行中的参数相互依赖。

  • 使用管道符 | 分隔的参数是互斥的。

在终端/shell 中运行命令前,请将示例复制到文本编辑器并按需修改。

在版本 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

该标志需要服务器支持 trailing headers,并适用于 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
可选

使用 KMS 管理的密钥,通过服务器端 SSE-S3 加密来加密或解密对象。将对象的完整路径指定为 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 编码密钥一个 64 字节的十六进制编码密钥,用于 SSE-C 加密。

Raw 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"

注意

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

--storage-class, --sc
可选

TARGET 上的新对象设置存储类别。

有关 S3 存储类别的更多信息,请参阅亚马逊的文档

--tags
可选

向 TARGET 应用一个或多个标签。

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 数据库,并使用 mc pipe 在 S3 上创建一个备份。

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

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

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

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

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

以下命令将一个 MP3 文件上传到一个别名为 myminio 的 MinIO 部署和一个名为 music 的存储桶。该对象写入时带有一些关于 Cache-ControlArtist 的元数据。

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

在上传的对象上设置标签

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

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