mc cp
语法
Themc cpcommand 命令将对象复制到 MinIO 部署或从 MinIO 部署复制对象,
其中源可以是 MinIOor本地文件系统。
你也可以使用mc cp针对本地文件系统进行操作以产生
类似于cp命令行工具。
Note
mc cp只复制对象的最新版本或指定版本,不包含任何版本信息或修改日期。
要复制所有版本、版本信息及相关元数据,请使用mc replicate add or mc admin replicate.
以下命令将文件从本地文件系统目录复制到mydata桶上的myminioMinIO 部署:
mc cp --recursive ~/mydata/ myminio/mydata/
Themc cp命令具有以下语法:
mc [GLOBALFLAGS] cp \
[--attr "string"] \
[--disable-multipart] \
[--enc-kms "string"] \
[--enc-s3 "string"] \
[--enc-c "string"] \
[--legal-hold "on"] \
[--limit-download string] \
[--limit-upload string] \
[--md5] \
[--newer-than "string"] \
[--older-than "string"] \
[--preserve] \
[--recursive] \
[--retention-mode "string" --retention-duration "string"] \
[--rewind "string"] \
[--storage-class "string"] \
[--tags "string"] \
[--version-id "string"] \
[--zip] \
SOURCE [SOURCE ...] \
TARGET
Brackets
[]表示可选参数。共享同一行的参数是相互依赖的。
使用竖线分隔的参数
|操作符是互斥的。
将示例复制到文本编辑器中,根据需要修改,然后在终端/Shell中运行命令。
参数
- SOURCE
- 必需
要复制的一个或多个对象。
要从 MinIO 复制对象,请指定别名以及该对象的完整路径(例如存储桶和对象路径)。 例如:
mc cp play/mybucket/object.txt ~/mydata/object.txt
指定多个
SOURCE复制多个对象到指定位置的路径TARGET.mc cp对待最后指定的别名或文件系统路径作为TARGET例如:mc cp ~/data/object.txt myminio/mydata/object.txt play/mydata/
要从本地文件系统复制对象,请指定该对象的完整路径。 例如:
mc cp ~/mydata/object.txt play/mybucket/object.txt
如果您指定一个目录或存储桶
SOURCE,您还必须指定--recursive递归复制该目录或存储桶的内容。 如果省略--recursive参数,cp仅复制指定目录或存储桶顶层的对象。
- TARGET
- 必需
完整路径指向
mc cp复制对象。要将对象复制到 MinIO, 请指定
alias以及该对象的完整路径 (例如存储桶和对象路径)。例如:mc cp ~/mydata/object.txt play/mybucket/object.txt
要从本地文件系统复制对象,请指定该对象的完整路径。例如:
mc cp play/mybucket/object.txt ~/mydata/object.txt
- --checksum
- 可选
版本 RELEASE.2024-10-02T08-27-28Z 中的新增内容。
为上传的对象添加校验和。
有效值为: -
MD5-CRC32-CRC32C-SHA1-SHA256该功能需要服务器尾部标头,并可与 AWS 或 MinIO 目标配合使用。
- --enc-kms
使用服务器端加密或解密对象SSE-KMS 加密使用客户端管理的密钥。
该参数接受一个键值对,格式为
KEY=VALUEKEY对象的完整路径为
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=VALUEKEY对象的完整路径为
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改为使用参数。
- --legal-hold
- 可选
启用无限法律保留对复制的对象启用对象锁定。
指定
on.
- --limit-download
- 可选
限制客户端下载速率不超过指定的 KiB/s、MiB/s 或 GiB/s 速率。 这仅影响运行 MinIO Client 的本地设备下载。 有效单位包括:
B对于字节K对于千字节M对于兆字节G用于千兆字节T对于太字节Ki对于千位字节Mi对于兆二进制字节Gi对于吉比字节Ti对于太字节
例如,要将下载速率限制在不超过 1 GiB/s,请使用以下命令:
--limit-download 1G
如果未指定,MinIO 使用无限制的下载速率。
- --limit-upload
- 可选
限制客户端上传速率不超过指定的 KiB/s、MiB/s 或 GiB/s 速率。 这仅影响运行 MinIO Client 的本地设备的上传。 有效单位包括:
B对于字节K对于千字节M对于兆字节G用于千兆字节T对于太字节Ki对于千位字节Mi对于兆二进制字节Gi对于吉比字节Ti对于太字节
例如,要将上传速率限制在不超过 1 GiB/s,请使用以下命令:
--limit-upload 1G
如果未指定,MinIO 使用无限制的上传速率。
- --md5
- 可选
Changed in version RELEASE.2024-10-02T08-27-28Z:被替换为
--checksumflag.强制所有上传文件计算MD5校验和。
- --retention-duration
- 可选
The duration of theWORM保留模式应用到复制的对象上。
将持续时间指定为字符串格式
#d#hh#mm#ss格式。 例如:--retention-duration "1d2hh3mm4ss".需要指定
--retention-mode.
- --retention-mode
- 可选
启用对象锁定模式在复制的对象上。 支持以下值:
GOVERNANCECOMPLIANCE
需要指定
--retention-duration.
- --rewind
- 可选
Directs
mc cp仅对指定时间点存在的对象版本进行操作。要回滚到过去的特定日期,请将日期指定为 ISO8601格式的时间戳。例如:
--rewind "2020.03.24T10:00".要倒回一段时间,请将持续时间指定为字符串,格式为
#d#hh#mm#ss格式。例如:--rewind "1d2hh3mm4ss".
--rewind要求指定的SOURCE成为兼容 S3 的服务 并支持Bucket Versioning对于 MinIO 部署,请使用mc version启用或禁用存储桶版本控制。
- --storage-class, sc
- 可选
为新对象设置存储类别
TARGET.看https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html有关 S3 存储类的更多信息。
- --version-id, vid
- 可选
Directs
mc cp仅对指定的对象版本进行操作。--version-id要求指定的SOURCE成为兼容 S3 的服务 并支持Bucket Versioning对于 MinIO 部署,请使用mc version启用或禁用存储桶版本控制。
全局标志
此命令支持任何全局标志.
示例
复制对象到 S3
使用mc cp要将对象复制到 S3 兼容的主机:
递归复制对象到 S3
使用mc cp --recursive要递归地将对象复制到
S3 兼容的主机:
mc cp --recursive SOURCE ALIAS/PATH
复制对象的指定时间点版本
使用mc cp --rewind将对象复制为它在特定时间点存在的状态。此命令仅适用于 S3 到 S3 的复制。
mc cp --rewind DURATION SRCALIAS/SRCPATH TGTALIAS/TGTPATH
替换
DURATION在指定的过去时间点,该命令会复制对象。例如,指定30d复制对象在当前日期前30天的版本。替换
SRCPATH指向源 S3 兼容主机上对象的路径。替换
TGTPATH使用目标 S3 兼容主机上对象的路径。省略对象名称以使用SRCPATH对象名称。
需要版本控制
mc cp需要bucket versioning要使用此功能。mc version对存储桶启用版本控制。
复制对象的特定版本
使用mc cp --version-id复制对象的特定版本。此命令仅适用于 S3 到 S3 的复制。
mc cp --version-id VERSION SRCALIAS/SRCPATH TGTALIAS/TGTPATH
需要版本控制
mc cp需要bucket versioning要使用此功能。mc version对存储桶启用版本控制。
添加一个content-type值
使用mc cp --attr添加一个content-typevalue.
此命令仅适用于 S3 到 S3 的复制。
mc cp --attr="content-type=CONTENT-TYPE" SRCALIAS/SRCPATH TGTALIAS/TGTPATH
替换
CONTENT-TYPE具有所需内容类型(也称为媒体类型).替换
SRCPATH源 S3 兼容主机上的对象路径。替换
TGTPATH使用目标 S3 兼容主机上对象的路径。 省略对象名称以使用SRCPATH对象名称。
以下示例设置了一个content-type of application/json:
mc cp data.ndjson --attr="content-type=application/json" myminio/mybucket
行为
mc cp验证所有使用MD5SUM校验和的对象存储复制操作。
S3 Compatibility
Themc命令行工具专为兼容 AWS S3 API 而构建,并已通过 MinIO 和 AWS S3 测试,确保功能与行为符合预期。
MinIO 不提供对其他 S3 兼容服务的保证,因为它们的 S3 API 实现方式未知,因此不受支持。尽管mc命令可能按文档所述工作,任何此类使用风险自负。