使用 mgwutil create-job 命令建立一個遷移任務,支援覆蓋方式、限流、審計方式、過濾器等配置。
命令格式
mgwutil create-job <job-name> \
--src-address <value> --dest-address <value> \
--overwrite-mode <value> --transfer-mode <value> \
[--max-bandwidth <value>] [--max-qps <value>]...參數說明
參數 | 必填 | 說明 |
job-name | 是 | 任務名稱。 格式:支援字母、數字、底線(_)和短劃線(-)。長度為 3~63 個字元。 |
--src-address | 是 | 指定源端資料地址。 |
--dest-address | 是 | 指定目的端資料地址。 |
覆蓋方式 | ||
--overwrite-mode | 是 | --overwrite-mode 、--transfer-mode 需按照如下方式組合使用:
|
--transfer-mode | 是 | |
限流 | ||
--max-bandwidth | 否 | 任務的最大頻寬節流設定。 單位:bits/s。 |
--max-qps | 否 | 任務的最大 QPS 限制。限流值有上限,詳情請參見使用限制。 |
審計方式 | ||
--create-report | 否 | 是否為任務產生遷移報告。此為布爾標誌,出現即表示啟用。 預設值: |
--log-mode | 否 | 遷移日誌推送方式,可能值: 1.off:關閉,不推送遷移日誌; 2.basic:僅推送檔案錯誤記錄檔; 3.detail:推送檔案錯誤記錄檔和檔案遷移日誌。 |
過濾器 | ||
--exclude-dir | 否 | 是否在遷移中排除所有目錄。 預設值: |
--exclude-symlink | 否 | 是否在遷移中排除所有軟連結檔案。 預設值: |
--key-filters-excludes | 否 | 檔案名稱排除過濾器,支援Regex。多個運算式用逗號(,)分隔,邏輯關係為“或”。 |
--key-filters-includes | 否 | 檔案名稱包含過濾器 ,支援Regex。多個運算式用逗號(,)分隔,邏輯關係為“或”。 樣本: |
--last-modified-filters-excludes | 否 | 最後修改時間排除過濾器。格式為 |
--last-modified-filters-includes | 否 | 最後修改時間包含過濾器,格式同上。 |
遷移配置 | ||
--with-storage-class | 否 | 是否在遷移過程中同步檔案的儲存類型(StorageClass)屬性。 限制:僅在源端和目的端均為 OSS 時生效。 預設值: |
--target-storage-class | 否 | 強制指定目的端所有檔案的儲存類型。 限制:僅在目的端為 OSS 時生效。 |
--with-last-modify-time | 否 | 是否在遷移後保留檔案的原始 預設值: |
--parent-version | 否 | 指定父任務 ID。(該參數僅在建立子任務時必填)。 重要 當建立子任務時,必須提供其父任務的
若上述任一校正失敗,子任務建立請求將被拒絕,並返回相應錯誤碼。 |
--convert-symlink-target | 否 | 是否轉換軟連結(symlink)指向的目標檔案。預設值: |
--appendable-to-normal | 否 | 是否將源端的可追加(appendable)類型檔案轉換為普通(normal)或分區(multipart)檔案進行遷移。 預設值: |
調度規則 | ||
--max-schedule-count | 否 | 周期性調度任務的最大執行輪次,達到輪次限制後任務將不再自動調度,但仍能手動調度。 |
--start-cron-expression | 否 | 任務啟動調度規則。使用標準的 6 位 Cron 運算式(秒 分 時 日 月 周)。 |
--suspend-cron-expression | 否 | 任務暫停調度規則。格式同上。 |
使用樣本
mgwutil create-job "full-migration-job" \
--src-address "oss-src-address" --dest-address "oss-dest-address" \
--overwrite-mode always --transfer-mode all \
--start-cron-expression "0 0 2 * * *" --max-schedule-count 10 \
--key-filters-includes "(.*).gif, (.*).pdf" \
--last-modified-filters-includes "2025-07-03 00:00:00 > 2025-07-04 00:00:00"返回結果
成功返回
{
"Code": "success",
"StatusCode": 200,
"LogTime": "2025-12-25 17:51:37",
"Data": {
"JobName": "daily-backup-job",
"Version": "a1b2c3d4-e5f6-7890-1234-abcdef123456",
"CreateTime": "2025-07-17T13:39:25.000Z",
"Status": "IMPORT_JOB_BEGIN",
"SrcAddr": "nas-agent-data",
"DestAddr": "oss-agent-backup"
}
}失敗返回
{
"Code": "fail",
"StatusCode": 404,
"LogTime": "2026-01-16 13:55:52",
"ErrorMsg": "SDKError: StatusCode: 404 Code: NoSuchImportAddress Message: The specified import address does not exist Data: {'AccessDeniedDetail':null,'Recommend':null,'ecCode':null,'hostId':'1***09****69****.cn-hangzhou.mgw.aliyuncs.com','requestId':'6969D2E89367063631F7AB51','statusCode':404} ",
"ErrorCode": "NoSuchImportAddress",
"RequestId": "6969D2E89367063631F7AB51"
}錯誤碼
錯誤碼錶示錯誤類別,詳情請參考錯誤資訊(ErrorMsg)。
此錯誤碼包含 通用錯誤碼。
ErrorCode | 說明 |
ImportJobDepthExceed | 子任務嵌套深度超過系統限制,請減少任務層級嵌套。 |
ImportJobNumExceed | 任務數量超過預設限制,請減少任務數量後重試。 |
ImportJobAlreadyExist | 同名任務已存在,請使用唯一名稱或先刪除現有任務。 |
NoSuchImportAddress | 指定的地址不存在,請檢查地址配置項名稱是否正確。 |
NoSuchImportJobParent | 父任務不存在,請確保指定的父任務已建立且 ID 正確。 |
ImportJobRepeatedOnSameAddress | 源地址與目的地址相同的任務已存在,請避免重複建立。 |