mc mv
语法
Themc mvcommand moves an object from source to the target, such as
between MinIO deployments
命令将对象从源移动到目标,例如
在 MinIO 部署之间or同一 MinIO 部署中的存储桶之间。mc mv还支持在本地文件系统和MinIO之间移动对象。
你也可以使用mc mv针对本地文件系统进行操作以产生
类似于mv命令行工具。
以下命令将对象从mydata桶到archive桶上的myminioMinIO 部署:
mc mv --recursive myminio/mydata myminio/archive
该命令具有以下语法:
mc [GLOBALFLAGS] mv \
[--attr "string"] \
[--disable-multipart] \
[--enc-kms "string"] \
[--enc-s3 "string"] \
[--enc-c "string"] \
[--limit-download string] \
[--limit-upload string] \
[--newer-than "string"] \
[--older-than "string"] \
[--preserve] \
[--recursive] \
[--storage-class "string"] \
SOURCE [SOURCE...] \
TARGET
Brackets
[]表示可选参数。共享同一行的参数是相互依赖的。
使用竖线分隔的参数
|操作符是互斥的。
将示例复制到文本编辑器中,根据需要修改,然后在终端/Shell中运行命令。
参数
- SOURCE
- :required:
要移动的对象。
要从 MinIO 存储桶中移动对象,请指定别名以及对象的完整路径(例如存储桶和对象路径)。例如:
mc mv play/mybucket/object.txt play/myotherbucket/object.txt
要将对象从本地文件系统移动,请指定该对象的完整路径。例如:
mc mv ~/mydata/object.txt play/mybucket/object.txt
指定多个
SOURCE将多个对象移动到指定位置的路径TARGET.mc rm对待最后指定的别名或文件系统路径作为TARGET例如:mc mv ~/mydata/object.txt play/mydata/otherobject.txt myminio/mydata
如果您指定一个目录或存储桶
SOURCE,您还必须指定--recursive要递归移动 该目录的内容。如果您省略--recursive参数,mv仅移动指定目录或存储桶顶层中的对象。
- TARGET
- 必需
命令将指定对象移动到的存储桶的完整路径
SOURCE. 指定别名已配置的 S3 服务的前缀TARGETpath.对于从 MinIO 移动对象, 请指定别名以及对象的完整路径 (例如:存储桶和对象路径)。例如:
mc mv play/mybucket/object.txt play/myotherbucket/object.txt
要将对象从本地文件系统移动,请指定该对象的完整路径。例如:
mc mv ~/mydata/object.txt play/mybucket/object.txt
The
TARGET对象名称可以与SOURCE将对象"重命名"作为移动操作的一部分。如果正在运行
mc mv随着--recursive选项,mc mv对待TARGET作为所有对象的存储桶前缀SOURCE.
- --disable-multipart
- 可选
禁用多部分上传功能。
Multipart upload breaks an object into a set of separate parts. Each part uploads individually and in any order. If any individual part upload fails, MinIO retries that part without affecting the other parts. After upload completes, the parts combine to restore the original object.
MinIO recommends using multipart upload for any object larger than 100 MB. For more information on multipart upload, refer to theMinIO建议对任何大于100MB的对象使用分段上传。 有关分段上传的更多信息,请参阅Amazon S3 documentation
- --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改为使用参数。
- --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 使用无限制的下载速率。
全局标志
此命令支持任何全局标志.
示例
将文件从文件系统移动到S3兼容主机
mc mv [--recursive] FILEPATH ALIAS/PATH
将文件从文件系统移动到具有自定义元数据的S3兼容主机
mc mv --attr "ATTRIBUTES" FILEPATH ALIAS/PATH
在 S3 兼容服务之间移动存储桶
mc mv --recursive SRCALIAS/SRCPATH TGTALIAS/TGTPATH
将文件移动到具有特定存储类别的S3兼容主机
使用mc mv随着--storage-class设置目标 S3 兼容主机上存储类的选项。
mc mv --storage-class CLASS FILEPATH ALIAS/PATH
行为
移动时的对象名称
MinIO 使用SOURCE移动对象时的对象名称TARGET如果没有指定明确的目标对象名称。
您可以为该对象指定一个不同的名称TARGET使用相同的对象路径来"重命名"
一个对象。例如:
mc mv play/mybucket/object.txt play/mybucket/myobject.txt
对于递归移动操作(mc mv --recursive), MinIO
将其视为TARGETpath 作为对象的前缀SOURCE.
校验和验证
mc mv验证所有使用MD5SUM校验和的对象存储移动操作。
MinIO 在删除对象时修剪空前缀
mc mv依赖于mc用于删除对象的移除 API。作为删除存储桶前缀中最后一个对象的一部分,mc同时还会递归删除前缀的每个空部分,直到存储桶根目录。mc仅对
已创建的前缀应用递归删除隐式地作为对象写入操作的一部分 - 也就是说,此前缀不是通过显式目录创建命令(如mc mb.
例如,考虑一个存储桶photos使用以下对象前缀:
photos/2021/january/myphoto.jpgphotos/2021/february/myotherphoto.jpgphotos/NYE21/NewYears.jpg
photos/NYE21是仅使用显式创建的前缀mc mb所有其他前缀都是隐式地作为写入该前缀处对象的一部分创建。
如果mc命令移除myphoto.jpg, the removal API automatically
trims the empty/januaryprefix. 如果后续mc命令移除myotherphoto.jpg移除 API 会自动对/februaryprefix和现在空着的/2021prefix. 如果某个mc命令移除NewYears.jpg, the/NYE21前缀保持不变,因为它已经就位明确地已创建。
如果使用mc mv对于文件系统的操作,mc应用了相同的行为,通过递归修剪空目录路径直到根目录。然而,mcremove API 无法区分显式创建的目录路径和隐式创建的目录路径。如果mc mv删除文件系统路径中的最后一个对象,mc递归删除该路径下所有空目录,直至根目录,作为删除操作的一部分。
S3 Compatibility
Themc命令行工具专为兼容 AWS S3 API 而构建,并已通过 MinIO 和 AWS S3 测试,确保功能与行为符合预期。
MinIO 不提供对其他 S3 兼容服务的保证,因为它们的 S3 API 实现方式未知,因此不受支持。尽管mc命令可能按文档所述工作,任何此类使用风险自负。