mc cp
語法
mc cp
命令會將物件複製到 MinIO 部署或從 MinIO 部署複製物件,其中來源可以是 MinIO 或 本機檔案系統。
您也可以針對本機檔案系統使用 mc cp
,以產生與 cp
命令列工具類似的結果。
注意
mc cp
僅複製最新版本或指定版本的物件,而不包含任何版本資訊或修改日期。若要複製所有版本、版本資訊和相關中繼資料,請使用 mc replicate add
或 mc admin replicate
。
以下命令將檔案從本機檔案系統目錄複製到 myminio
MinIO 部署上的 mydata
儲存桶。
mc cp --recursive ~/mydata/ myminio/mydata/
mc 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
方括號
[]
表示可選參數。同一行上的參數彼此相依。
使用管線符號
|
分隔的參數彼此互斥。
將範例複製到文字編輯器,並在終端機/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,請指定
別名
和該物件的完整路徑(例如儲存桶和物件路徑)。例如: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=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
- 選用
使用 KMS 管理的金鑰,透過伺服器端 SSE-S3 加密 加密或解密物件。指定物件的完整路徑,格式為
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 編碼金鑰*或* 64 位元組的十六進位編碼金鑰,以用於 SSE-C 加密。
Raw 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"
注意
MinIO 強烈建議不要在生產工作負載中使用 SSE-C 加密。請改為透過
--enc-kms
參數使用 SSE-KMS,或透過--enc-s3
參數使用 SSE-S3。
- --legal-hold
- 選用
在複製的物件上啟用無限期的 法律保留 物件鎖定。
指定
on
。
- --limit-download
- 選用
將用戶端下載速率限制為不超過以 KiB/s、MiB/s 或 GiB/s 為單位的指定速率。這僅會影響下載到執行 MinIO 用戶端的本機裝置。有效單位包括:
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 用戶端的本機裝置上傳。有效單位包括:
B
代表位元組K
代表千位元組M
代表百萬位元組G
代表十億位元組T
代表兆位元組Ki
代表千位元組二進位Mi
代表百萬位元組二進位Gi
代表十億位元組二進位Ti
代表兆位元組二進位
例如,若要將上傳速率限制為不超過 1 GiB/s,請使用以下命令:
--limit-upload 1G
如果未指定,MinIO 會使用無限制的上傳速率。
- --md5
- 選用
在版本 RELEASE.2024-10-02T08-27-28Z 中變更:已由
--checksum
標記取代。強制所有上傳計算 MD5 檢查碼。
- --retention-duration
- 選用
要套用到複製物件的 WORM 保留模式 的持續時間。
以
#d#hh#mm#ss
格式指定持續時間的字串。例如:--retention-duration "1d2hh3mm4ss"
。需要指定
--retention-mode
。
- --retention-mode
- 選用
在複製的物件上啟用物件鎖定模式。支援下列值
GOVERNANCE
COMPLIANCE
需要指定
--retention-duration
。
- --rewind
- 選用
指示
mc cp
僅對指定時間點存在的物件版本進行操作。若要回溯到過去的特定日期,請將日期指定為 ISO8601 格式的時間戳記。例如:
--rewind "2020.03.24T10:00"
。若要回溯一段時間,請以
#d#hh#mm#ss
格式指定持續時間字串。例如:--rewind "1d2hh3mm4ss"
。
--rewind
要求指定的SOURCE
是支援 儲存桶版本控制 的 S3 相容服務。對於 MinIO 部署,請使用mc version
來啟用或停用儲存桶版本控制。
- --storage-class, sc
- 選用
在
TARGET
上設定新物件的儲存類別。如需 S3 儲存類別的詳細資訊,請參閱 https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html。
- --version-id, vid
- 選用
指示
mc cp
僅對指定的物件版本進行操作。--version-id
要求指定的SOURCE
是支援 儲存桶版本控制 的 S3 相容服務。對於 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
需要 儲存桶版本控制 才能使用此功能。使用 mc version
在儲存桶上啟用版本控制。
複製物件的特定版本
使用 mc cp --version-id
來複製物件的特定版本。此命令僅適用於 S3 到 S3 的複製。
mc cp --version-id VERSION SRCALIAS/SRCPATH TGTALIAS/TGTPATH
將
VERSION
替換為要複製的物件版本。將
SRCPATH
替換為來源 S3 相容主機上物件的路徑。將
TGTPATH
替換為目標 S3 相容主機上物件的路徑。省略物件名稱以使用SRCPATH
物件名稱。
需要版本控制
mc cp
需要 儲存桶版本控制 才能使用此功能。使用 mc version
在儲存桶上啟用版本控制。
新增 content-type
值
使用 mc cp --attr
來新增 content-type
值。此命令僅適用於 S3 到 S3 的複製。
mc cp --attr="content-type=CONTENT-TYPE" SRCALIAS/SRCPATH TGTALIAS/TGTPATH
將
CONTENT-TYPE
替換為所需的內容類型(也稱為 媒體類型)。將
SRCPATH
替換為來源 S3 相容主機上物件的路徑。將
TGTPATH
替換為目標 S3 相容主機上物件的路徑。省略物件名稱以使用SRCPATH
物件名稱。
以下範例設定 content-type
為 application/json
mc cp data.ndjson --attr="content-type=application/json" myminio/mybucket
行為
mc cp
使用 MD5SUM 檢查碼驗證所有到物件儲存體的複製操作。
S3 相容性
mc 命令列工具是為了與 AWS S3 API 相容而建置的,並已使用 MinIO 和 AWS S3 測試其預期功能和行為。
MinIO 對於其他 S3 相容服務不提供任何保證,因為它們的 S3 API 實作是未知的,因此不支援。雖然 mc 命令 *可能* 會如文件所述般運作,但任何此類使用皆由您自行承擔風險。