15 KiB
mc cp
minio
Table of Contents
mc cp
Syntax
The mc cp
command
copies objects to or from a MinIO deployment, where the source can MinIO
or a local filesystem.
You can also use mc cp
against the local filesystem to produce similar
results to the cp
commandline tool.
Note
mc cp
only copies the
latest version or the specified version of an object without any version
information or modification date. To copy all versions, version
information, and related metadata, use mc replicate add
or mc admin replicate
.
EXAMPLE
The following command copies files from a local filesystem directory
to the mydata
bucket on the myminio
MinIO
deployment:
mc cp --recursive ~/mydata/ myminio/mydata/
SYNTAX
The mc cp
command has
the following syntax:
mc [GLOBALFLAGS] cp \
[--attr "string"] \
[--continue] \
[--disable-multipart] \
[--encrypt "string"] \
[--encrypt-key] \
[--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
Parameters
SOURCE
The object or objects to copy.
For copying an object from MinIO, specify the alias <alias>
and the
full path to that object (e.g. bucket and path to object). For
example:
mc cp play/mybucket/object.txt ~/mydata/object.txt
Specify multiple SOURCE
paths to copy multiple objects
to the specified ~mc cp TARGET
. mc cp
treats the last specified alias or
filesystem path as the TARGET
. For example:
mc cp ~/data/object.txt myminio/mydata/object.txt play/mydata/
For copying an object from a local filesystem, specify the full path to that object. For example:
mc cp ~/mydata/object.txt play/mybucket/object.txt
If you specify a directory or bucket to ~mc cp SOURCE
, you must
also specify ~mc cp --recursive
to recursively copy the contents
of that directory or bucket. If you omit the --recursive
argument, ~mc cp
only
copies objects in the top level of the specified directory or
bucket.
TARGET
The full path to which mc cp
copies the object.
For copying an object to MinIO, specify the alias <mc alias>
and the
full path to that object (e.g. bucket and path to object). For
example:
mc cp ~/mydata/object.txt play/mybucket/object.txt
For copying an object from a local filesystem, specify the full path to that object. For example:
mc cp play/mybucket/object.txt ~/mydata/object.txt
--attr
Add custom metadata for the object. Specify key-value pairs as
KEY=VALUE\;
. For example,
--attr key1=value1\;key2=value2\;key3=value3
.
--continue, c
Create or resume a copy session.
--disable-multipart
Disables multipart upload for the copy session.
--encrypt
Encrypt or decrypt objects using server-side encryption <minio-sse>
with
server-managed keys. Specify key-value pairs as
KEY=VALUE
.
- Each
KEY
represents a bucket or object. - Each
VALUE
represents the data key to use for encrypting object(s).
Enclose the entire list of key-value pairs passed to ~mc cp --encrypt
in
double-quotes "
.
~mc cp --encrypt
can use the MC_ENCRYPT
environment variable for retrieving
a list of encryption key-value pairs as an alternative to specifying
them on the command line.
--encrypt-key
Encrypt or decrypt objects using server-side encryption with
client-specified keys. Specify key-value pairs as
KEY=VALUE
.
- Each
KEY
represents a bucket or object. - Each
VALUE
represents the data key to use for encrypting -
object(s).
- Each
Enclose the entire list of key-value pairs passed to ~mc cp --encrypt-key
in
double quotes "
.
~mc cp --encrypt-key
can use the
MC_ENCRYPT_KEY
environment variable for retrieving a list
of encryption key-value pairs as an alternative to specifying them on
the command line.
--legal-hold
Enables indefinite Legal Hold <minio-object-locking-legalhold>
object locking on the copied objects.
Specify on
.
--md5
Forces all uploads to calculate MD5 checksums.
--newer-than
Remove object(s) newer than the specified number of days. Specify a
string in #d#hh#mm#ss
format. For example:
--older-than 1d2hh3mm4ss
Defaults to 0
(all objects).
--older-than
Remove object(s) older than the specified time limit. Specify a
string in #d#hh#mm#ss
format. For example:
--older-than 1d2hh3mm4ss
Defaults to 0
(all objects).
--preserve, a
Preserve file system attributes and bucket policy rules of the ~mc cp SOURCE
directories,
buckets, and objects on the ~mc cp TARGET
bucket(s).
--recursive, r
Recursively copy the contents of each bucket or directory ~mc cp SOURCE
to the ~mc cp TARGET
bucket.
--retention-duration
The duration of the WORM retention mode <minio-object-locking-retention-modes>
to apply to the copied object(s).
Specify the duration as a string in #d#hh#mm#ss
format.
For example: --retention-duration "1d2hh3mm4ss"
.
Requires specifying ~mc cp --retention-mode
.
--retention-mode
Enables object locking mode <minio-object-locking-retention-modes>
on the copied object(s). Supports the following values:
GOVERNANCE
COMPLIANCE
Requires specifying ~mc cp --retention-duration
.
--rewind
storage-class, sc
Set the storage class for the new object(s) on the ~mc cp TARGET
.
See AmazonS3/latest/dev/storage-class-intro.html
for
more information on S3 storage classes.
--tags
Applies one or more tags to the copied objects.
Specify an ampersand-separated list of key-value pairs as
KEY1=VALUE1&KEY2=VALUE2
, where each pair represents one
tag to assign to the objects.
--version-id, vid
--zip
During copy, extract files from a .zip archive. Only functional when the source archive file exists on a MinIO deployment.
Global Flags
Examples
Copy Object to S3
Use mc cp
to copy an
object to an S3-compatible host:
Filesystem to S3
mc cp SOURCE ALIAS/PATH
- Replace
SOURCE <mc cp SOURCE>
with the filesystem path to the object. - Replace
ALIAS <mc cp TARGET>
with thealias <mc alias>
of a configured S3-compatible host. - Replace
PATH <mc cp TARGET>
with the path to the object on the S3-compatible host. You can specify a different object name to "rename" the object on copy.
S3 to S3
mc cp SRCALIAS/SRCPATH TGTALIAS/TGTPATH
- Replace
SRCALIAS <mc cp SOURCE>
with thealias <mc alias>
of a source S3-compatible host. - Replace
SRCPATH <mc cp SOURCE>
with the path to the object on the S3-compatible host. - Replace
TGTALIAS <mc cp TARGET>
with thealias <mc alias>
of a target S3-compatible host. - Replace
TGTPATH <mc cp TARGET>
with the path to the object on a target S3-compatible host. Omit the object name to use theSRCPATH
object name.
Recursively Copy Objects to S3
Use mc cp --recursive
to recursively copy objects to an
S3-compatible host:
Filesystem to S3
mc cp --recursive SOURCE ALIAS/PATH
- Replace
SOURCE <mc cp SOURCE>
with the filesystem path to the directory containing the file(s). - Replace
ALIAS <mc cp TARGET>
with thealias <mc alias>
of a configured S3-compatible host. - Replace
PATH <mc cp TARGET>
with the path to the object on the S3-compatible host.mc cp
uses theSOURCE
filenames when creating the objects on the target host.
S3 to S3
mc cp --recursive SRCALIAS/SRCPATH TGTALIAS/TGTPATH
- Replace
SRCALIAS <mc cp SOURCE>
with thealias <mc alias>
of a source S3-compatible host. - Replace
SRCPATH <mc cp SOURCE>
with the path to the bucket or bucket prefix on the source S3-compatible host. - Replace
TGTALIAS <mc cp TARGET>
with thealias <mc alias>
of a target S3-compatible host. - Replace
TGTPATH <mc cp TARGET>
with the path to the object on the target S3-compatible host.mc cp
uses theSRCPATH
object names when creating objects on the target host.
Copy Point-In-Time Version of Object
Use mc cp --rewind
to copy an object as it existed at a
specific point in time. This command only applies to S3-to-S3 copy.
mc cp --rewind DURATION SRCALIAS/SRCPATH TGTALIAS/TGTPATH
- Replace
DURATION <mc cp --rewind>
with the point-in-time in the past at which the command copies the object. For example, specify30d
to copy the version of the object 30 days prior to the current date. - Replace
SRCALIAS <mc cp SOURCE>
with thealias <mc alias>
of a source S3-compatible host. - Replace
SRCPATH <mc cp SOURCE>
with the path to the object on the source S3-compatible host. - Replace
TGTALIAS <mc cp TARGET>
with thealias <mc alias>
of a target S3-compatible host. - Replace
TGTPATH <mc cp TARGET>
with the path to the object on the target S3-compatible host. Omit the object name to use theSRCPATH
object name.
Copy Specific Version of Object
Use mc cp --version-id
to copy a specific version of an
object. This command only applies to S3-to-S3 copy.
mc cp --version-id VERSION SRCALIAS/SRCPATH TGTALIAS/TGTPATH
- Replace
VERSION <mc cp --rewind>
with the version of the object to copy. - Replace
SRCALIAS <mc cp SOURCE>
with thealias <mc alias>
of a source S3-compatible host. - Replace
SRCPATH <mc cp SOURCE>
with the path to the object on the source S3-compatible host. - Replace
TGTALIAS <mc cp TARGET>
with thealias <mc alias>
of a target S3-compatible host. - Replace
TGTPATH <mc cp TARGET>
with the path to the object on the target S3-compatible host. Omit the object name to use theSRCPATH
object name.
Behavior
mc cp
verifies all
copy operations to object storage using MD5SUM checksums.
Interrupted or failed copy operations can resume from the point of
failure by issuing the mc cp
operation again with the ~mc cp --continue
argument.