mc mv
語法
mc mv
命令會將物件從來源移動到目標,例如在 MinIO 部署之間或在同一個 MinIO 部署上的儲存桶之間移動。 mc mv
也支援在本地檔案系統和 MinIO 之間移動物件。
您也可以針對本機檔案系統使用 mc mv
,以產生與 mv
命令列工具類似的結果。
下列命令將物件從 myminio
MinIO 部署上的 mydata
儲存桶移動到 archive
儲存桶。
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
方括號
[]
表示可選參數。同一行的參數彼此依賴。
使用管道符號
|
分隔的參數互斥。
請將範例複製到文字編輯器中,並在終端機/Shell 中執行命令之前進行修改。
參數
- SOURCE
- :必要:
要移動的物件。
若要從 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 服務的 別名 作為TARGET
路徑的前綴。若要從 MinIO 移動物件,請指定 別名 和物件的完整路徑(例如,儲存桶和物件的路徑)。例如:
mc mv play/mybucket/object.txt play/myotherbucket/object.txt
若要從本機檔案系統移動物件,請指定該物件的完整路徑。例如:
mc mv ~/mydata/object.txt play/mybucket/object.txt
TARGET
物件名稱可以與SOURCE
不同,以便在移動操作中「重新命名」物件。如果使用
--recursive
選項執行mc mv
,則mc mv
會將TARGET
視為SOURCE
中所有物件的儲存桶前綴。
- --disable-multipart
- 選用
停用多部分上傳功能。
多部分上傳會將物件分割成一組獨立的部分。每個部分會個別且依任意順序上傳。如果任何個別部分上傳失敗,MinIO 會重試該部分,而不會影響其他部分。上傳完成後,這些部分會組合以還原原始物件。
MinIO 建議對任何大於 100 MB 的物件使用多部分上傳。如需多部分上傳的詳細資訊,請參閱 Amazon S3 文件
- --enc-kms
使用伺服器端 SSE-KMS 加密 和用戶端管理金鑰來加密或解密物件。
此參數接受以
KEY=VALUE
格式化的鍵值組鍵
物件的完整路徑,格式為
alias/bucket/path/object.ext
。您只能指定頂層路徑,以針對該路徑中的所有操作使用單一加密金鑰。
值
指定外部 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=VALUE
格式化的鍵值組鍵
物件的完整路徑,格式為
alias/bucket/path/object.ext
。您只能指定頂層路徑,以針對該路徑中的所有操作使用單一加密金鑰。
值
指定 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。
- --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
選項來設定檔案的自訂屬性。
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 會將 TARGET
路徑視為 SOURCE
上物件的前綴。
總和檢查碼驗證
mc mv
使用 MD5SUM 總和檢查碼驗證所有對物件儲存進行的移動操作。
MinIO 會修剪物件移除時的空前綴
mc mv
依賴 mc
移除 API 來刪除物件。作為移除儲存桶前綴中最後一個物件的一部分,mc
也會遞迴地移除前綴的每個空部分,直到儲存桶根目錄。mc
僅將遞迴移除應用於作為物件寫入操作一部分隱含地建立的前綴 - 也就是說,前綴不是使用明確的目錄建立命令 (例如 mc mb
) 建立的。
例如,考慮一個具有以下物件前綴的儲存桶 photos
photos/2021/january/myphoto.jpg
photos/2021/february/myotherphoto.jpg
photos/NYE21/NewYears.jpg
photos/NYE21
是唯一使用 mc mb
明確建立的前綴。所有其他前綴都是在寫入位於該前綴的物件時隱含地建立的。
如果 mc
命令移除 myphoto.jpg
,則移除 API 會自動修剪空的 /january
前綴。如果後續的 mc
命令移除 myotherphoto.jpg
,則移除 API 會自動修剪 /february
前綴和現在為空的 /2021
前綴。如果 mc
命令移除 NewYears.jpg
,則 /NYE21
前綴會保留,因為它是明確建立的。
如果對檔案系統執行操作時使用 mc mv
,mc
會應用相同的行為,透過遞迴方式修剪直到根目錄的空目錄路徑。然而,mc
移除 API 無法區分明確建立的目錄路徑和隱式建立的目錄路徑。如果 mc mv
刪除檔案系統路徑中的最後一個物件,mc
會遞迴刪除該路徑內的所有空目錄,直到根目錄,作為移除操作的一部分。
S3 相容性
mc 命令列工具是為了與 AWS S3 API 相容而建置,並已透過 MinIO 和 AWS S3 測試其預期的功能和行為。
MinIO 不保證其他 S3 相容服務的運作,因為它們的 S3 API 實作是未知的,因此不支援。雖然 mc 命令可能會如文件所述運作,但任何此類使用風險自負。