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

MinIO Documentation

mc put

版本 mc 中的新功能:RELEASE.2024-02-24T01-33-20Z

语法

Themc put将本地文件系统中的对象上传到目标 S3 部署的存储桶中。

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

以下上传文件logo.png从本地文件系统的路径~/images/collateral/到一个名为的存储桶marketing在别名为minio.

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

该命令具有以下语法:

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

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

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

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

参数

TARGET
必需

完整路径别名或命令应运行的前缀。 TARGET必须包含别名bucketname.

TARGET 还可以包含以下可选组件: - PREFIX 指定对象应上传到的位置 - OBJECT-NAME 用于替代文件名的名称

有效的 TARGET 可以采用以下任意形式:ALIAS/BUCKET - ALIAS/BUCKET/PREFIX - ALIAS/BUCKET/OBJECT-NAME - ALIAS/BUCKET/PREFIX/OBJECT-NAME

--checksum
可选

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

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

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

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

--disable-multipart
可选

版本 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
可选

使用服务器端加密或解密对象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改为使用参数。

--parallel, --P
可选

对于分段上传,请指定并行上传的对象分段数量。

如果未定义,默认值为4.

--part-size, -s
可选

指定用于分段上传中每个部分的大小。

如果未定义,默认值为16MiB.

--storage-class, - sc
可选

设置上传对象的存储类别。

标准存储类别有关存储类的更多信息。

全局标志

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

示例

上传文件并指定对象名称

以下命令上传文件logo.png从本地文件系统到business桶上的minio部署,将其上传到目标位置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