MinIO 客户端 mc cp 命令用来复制对象。语法如下:
C:\> mc cp -h NAME: mc cp - copy objects USAGE: mc cp [FLAGS] SOURCE [SOURCE...] TARGET FLAGS: --rewind value roll back object(s) to current version at specified time 在指定时间将对象回滚到当前版本 --version-id value, --vid value select an object version to copy 选择要复制的对象版本 --recursive, -r copy recursively 递归复制 --older-than value copy objects older than L days, M hours and N minutes 复制超过 L 天、M 小时和 N 分钟的对象 --newer-than value copy objects newer than L days, M hours and N minutes 复制超过 L 天、M 小时和 N 分钟的对象 --storage-class value, --sc value set storage class for new object(s) on target 为目标上的新对象设置存储类 --encrypt value encrypt/decrypt objects (using server-side encryption with server managed keys) 加密/解密对象(使用服务器端加密和服务器管理的密钥) --attr value add custom metadata for the object 为对象添加自定义元数据 --continue, -c create or resume copy session创建或恢复复制会话 --preserve, -a preserve filesystem attributes (mode, ownership, timestamps) 保留文件系统属性(mode、所有权、时间戳) --disable-multipart disable multipart upload feature 禁用分段上传功能 --md5 force all upload(s) to calculate md5sum checksum 强制所有上传计算 md5sum 校验和 --tags value apply tags to the uploaded objects 将标签应用于上传的对象 --retention-mode value retention mode to be applied on the object (governance, compliance) 应用于对象的保留模式 --retention-duration value retention duration for the object in d days or y years 以 d 天或 y 年为单位的对象保留期限 --legal-hold value apply legal hold to the copied object (on, off) 对复制的对象应用合法保留(打开、关闭) --encrypt-key value encrypt/decrypt objects (using server-side encryption with customer provided keys) 加密/解密对象(使用带有客户提供的密钥的服务器端加密) --config-dir value, -C value path to configuration folder (default: "C:\\Users\\Administrator\\mc") --quiet, -q disable progress bar display --no-color disable color theme --json enable JSON lines formatted output --debug enable debug output --insecure disable SSL certificate verification --help, -h show help ENVIRONMENT VARIABLES: MC_ENCRYPT: list of comma delimited prefixes 逗号分隔前缀列表 MC_ENCRYPT_KEY: list of comma delimited prefix=secret values 逗号分隔 prefix=secret 值列表
(1)将对象列表从本地文件系统复制到 Amazon S3 云存储。
# 创建 files 存储桶 D:\server\minio>mc mb local/files Bucket created successfully `local/files`. # 将本地 start-minio.bat 文件复制到 files 存储桶 D:\server\minio>mc cp ./start-minio.bat local/files ./start-minio.bat: 152 B / 152 B [===========================================================] 6.95 KiB/s 0s # 查看拷贝结果 D:\server\minio>mc ls local/files [2021-07-10 08:58:00 CST] 152B start-minio.bat
(2)以递归方式将文件夹从 MinIO 云存储复制到 Amazon S3 云存储。
C:\> mc cp --recursive play/mybucket/burningman2011/ s3/mybucket/
(3)递归复制多个本地文件夹到 MinIO 云存储。
C:\> mc cp --recursive backup/2014/ backup/2015/ play/archive/
(4)以递归方式将存储桶从别名 Amazon S3 云存储复制到 Windows 上的本地文件系统。
C:\> mc cp --recursive s3\documents\2014\ C:\Backups\2014
(5)将超过 7 天 10 小时的文件从 MinIO 云存储复制到 Amazon S3 云存储。
C:\> mc cp --older-than 7d10h play/mybucket/burningman2011/ s3/mybucket/
(6)将超过 7 天 10 小时的文件从 MinIO 云存储复制到本地路径。
C:\> mc cp --newer-than 7d10h play/mybucket/burningman2011/ ~/latest/
(7)将名称包含 unicode 字符的对象复制到 Amazon S3 云存储。
C:\> mc cp 本語 s3/andoria/
(8)将带有空格分隔字符的本地文件夹复制到 Amazon S3 云存储。
C:\> mc cp --recursive 'workdir/documents/May 2014/' s3/miniocloud
(9)以递归方式将包含加密对象的文件夹从 Amazon S3 复制到 MinIO 云存储。
C:\> mc cp --recursive --encrypt-key "s3/documents/=32byteslongsecretkeymustbegiven1,myminio/documents/=32byteslongsecretkeymustbegiven2" s3/documents/ myminio/documents/
(10)以递归方式将包含加密对象的文件夹从 Amazon S3 复制到 MinIO 云存储。 如果加密密钥包含不可打印的字符(如制表符),请传递 base64 编码的字符串作为键。
C:\> mc cp --recursive --encrypt-key "s3/documents/=MzJieXRlc2xvbmdzZWNyZWFiY2RlZmcJZ2l2ZW5uMjE=,myminio/documents/=MzJieXRlc2xvbmdzZWNyZWFiY2RlZmcJZ2l2ZW5uMjE=" s3/documents/ myminio/documents/
(11)使用指定的元数据将本地文件系统中的对象列表复制到 MinIO 云存储,以“;”分隔。
C:\> mc cp --attr "key1=value1;key2=value2" Music/*.mp4 play/mybucket/
(12)使用 Cache-Control 和自定义元数据将文件夹从 MinIO 云存储递归复制到 Amazon S3 云存储,以“;”分隔。
C:\> mc cp --attr "Cache-Control=max-age=90000,min-fresh=9000;key1=value1;key2=value2" --recursive play/mybucket/burningman2011/ s3/mybucket/
(13)将文本文件复制到对象存储并将 REDUCED_REDUNDANCY 存储类分配给上传的对象。
C:\> mc cp --storage-class REDUCED_REDUNDANCY myobject.txt play/mybucket
(14)将文本文件复制到对象存储并创建或恢复复制会话。
C:\> mc cp --recursive --continue dir/ play/mybucket
(15)将文本文件复制到对象存储并将文件系统属性保留为元数据。
C:\> mc cp -a myobject.txt play/mybucket
(16)将文本文件复制到对象存储中,对象锁定模式设置为“GOVERNANCE”,保留期限为 1 天。
C:\> mc cp --retention-mode governance --retention-duration 1d locked.txt play/locked-bucket/
(17)将文本文件复制到启用了合法保留的对象存储。
C:\> mc cp --legal-hold on locked.txt play/locked-bucket/
(18)将文本文件复制到对象存储并禁用分段上传功能。
C:\> mc cp --disable-multipart myobject.txt play/mybucket
(19)回滚过去 10 天以复制 'mybucket' 的内容
C:\> mc cp --rewind 10d -r play/mybucket/ /tmp/dest/
(20)为上传的对象设置标签
C:\> mc cp -r --tags "category=prod" ./data/ play/another-bucket/