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
该标志需要服务器尾部标头,并且适用于 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
为 SSE-C 加密指定 32 字节的原始 Base64 编码密钥 *或* 64 字节的十六进制编码密钥。
原始 Base64 编码**拒绝**
=
填充的密钥。省略填充或使用支持 RAW 格式的 Base64 编码器。KEY
- 对象的完整路径,格式为alias/bucket/path/object
。VALUE
- 用于加密对象(s) 的 32 字节原始 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 存储类别的更多信息,请参阅 Amazon 的文档。
全局标志
此命令支持任何 全局标志。
示例
将 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 上的降低冗余存储类别中创建一个对象。
mc pipe --storage-class REDUCED_REDUNDANCY s3/personalbuck/meeting-notes.txt
将文件复制到具有元数据的 MinIO 部署
以下命令将 MP3 文件上传到具有 myminio
别名和 music
存储桶的 MinIO 部署。该对象写入了一些 Cache-Control
和 Artist
元数据。
cat music.mp3 | mc pipe --attr "Cache-Control=max-age=90000,min-fresh=9000;Artist=Unknown" myminio/music/guitar.mp3