中文文档

mc put

在 mc 版本加入: RELEASE.2024-02-24T01-33-20Z

语法

mc put 是 mc 命令行工具的一个命令,它用于将本地文件系统中的对象上传到目标 S3 部署中的桶。

mc put 提供了比 mc cpmc mirror 更简化的接口来上传文件。 mc put 使用单向上传功能,这种功能以效率换取其他命令的强大和复杂性。

以下命令将从本地文件系统的路径 ~/images/collateral/ 中上传文件 logo.png 到名为 marketing 的桶中,该桶位于别名为 minio 的 MinIO 部署上。

mc put ~/images/collateral/logo.png minio/marketing

该命令具有以下语法:

mc [GLOBALFLAGS] put                      \
                 TARGET                   \
                 [--checksum value]       \
                 [--disable-multipart]    \
                 [--enc-kms value]        \
                 [--enc-s3 value]         \
                 [--if-not-exists]        \
                 [--parallel, -P integer] \
                 [--part-size, -s string]
  • 方括号 [] 表示可选参数。

  • 参数在同一行表示它们是相互依赖的。

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

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

参数

TARGET
Required

完整路径到 alias 或前缀,命令应该在此运行。 目标 必须 包含一个 aliasbucket 名称。

目标还可以包含以下可选组件: - 对象应该上传到的前缀 - 代替文件名的对象名称

有效的目标可以采用以下任何形式: - ALIAS/BUCKET - ALIAS/BUCKET/PREFIX - ALIAS/BUCKET/OBJECT-NAME - ALIAS/BUCKET/PREFIX/OBJECT-NAME

--checksum
Optional

在 RELEASE.2024-10-02T08-27-28Z 版本加入.

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

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

该标志需要服务器尾随标头并与 AWS 或 MinIO 目标配合使用。

--disable-multipart
Optional

在 RELEASE.2024-10-02T08-27-28Z 版本加入.

禁用分段上传并指示 mc 在单个 PUT 操作中发送对象。

--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
Optional

使用服务器端 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
Optional

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

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

KEY

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

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

VALUE

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

原始 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。

--parallel, --P
Optional

对于多部分上传,指定同时上传对象的部分数量。

如果未定义,默认值为 4

--part-size, -s
Optional

指定多部分上传中每个部分的大小。

如果没有定义,默认值为 16MiB

Global Flags

此命令支持任何 全局标志

示例

上传文件并指定对象名称

以下命令将文件 logo.png 从本地文件系统上传到 minio 部署上的 business 存储桶,并将其作为 company-logo.png 上传到目标位置 。

mc put images/collateral/logo.png minio/business/company-logo.png

并行上传具有指定部分大小的多部分对象

以下命令将文件分成每个20MiB的部分,并并行上传文件的8个部分。 8个部分将依次上传,直到对象的所有部分都上传完成。

mc put ~/videos/collateral/splash-page.mp4 minio/business --parallel 8 --part-size 20MiB
Join Slack 商业支持购买咨询