全部產品
Search
文件中心

Data Online Migration:create-job(建立任務)

更新時間:Jan 30, 2026

使用 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 需按照如下方式組合使用:

  • always all 強制全覆蓋:無論檔案是否變化,始終覆蓋目標檔案。

  • always lastmodified 按修改時間覆蓋:僅當源檔案的最後修改時間 晚於 目標檔案時,才執行覆蓋。

  • never "" 永不覆蓋:若目標檔案已存在,則跳過遷移。

--transfer-mode

限流

--max-bandwidth

任務的最大頻寬節流設定。

單位:bits/s。

--max-qps

任務的最大 QPS 限制。限流值有上限,詳情請參見使用限制

審計方式

--create-report

是否為任務產生遷移報告。此為布爾標誌,出現即表示啟用。

預設值:false(不建立)。

--log-mode

遷移日誌推送方式,可能值:

1.off:關閉,不推送遷移日誌;

2.basic:僅推送檔案錯誤記錄檔;

3.detail:推送檔案錯誤記錄檔和檔案遷移日誌。

過濾器

--exclude-dir

是否在遷移中排除所有目錄。

預設值:false(不排除)。

--exclude-symlink

是否在遷移中排除所有軟連結檔案。

預設值:false(不排除)。

--key-filters-excludes

檔案名稱排除過濾器,支援Regex。多個運算式用逗號(,)分隔,邏輯關係為“或”。
樣本:--key-filters-excludes ".*\.log,.*\.tmp"

--key-filters-includes

檔案名稱包含過濾器 ,支援Regex。多個運算式用逗號(,)分隔,邏輯關係為“或”。

樣本:--key-filters-includes ".*\.jpg,.*\.png"

--last-modified-filters-excludes

最後修改時間排除過濾器。格式為 "YYYY-MM-DD HH:MM:SS > YYYY-MM-DD HH:MM:SS",多個時間段用逗號分隔。建議使用引號將整個值包圍。
樣本:--last-modified-filters-excludes "2023-01-01 00:00:00 > 2023-01-31 23:59:59"

--last-modified-filters-includes

最後修改時間包含過濾器,格式同上。

遷移配置

--with-storage-class

是否在遷移過程中同步檔案的儲存類型(StorageClass)屬性。

限制:僅在源端和目的端均為 OSS 時生效。

預設值:false

--target-storage-class

強制指定目的端所有檔案的儲存類型。

限制:僅在目的端為 OSS 時生效。
可選值:Standard(標準儲存)、IA(低頻訪問儲存)、Archive(Archive Storage)、ColdArchive(冷Archive Storage)、DeepColdArchive(深度冷Archive Storage)。

--with-last-modify-time

是否在遷移後保留檔案的原始 lastModifyTime(最後修改時間)。

預設值:true(保留)。

--parent-version

指定父任務 ID。(該參數僅在建立子任務時必填)。

重要

當建立子任務時,必須提供其父任務的 version 欄位。系統將執行以下校正:

  1. 父任務存在性檢查:指定的父任務必須已存在;

  2. 父任務狀態檢查:父任務不得處於 deleting(刪除中)狀態。

若上述任一校正失敗,子任務建立請求將被拒絕,並返回相應錯誤碼。

--convert-symlink-target

是否轉換軟連結(symlink)指向的目標檔案。預設值:false(不轉換,目的軟連結target和源端檔案保持一致)。

--appendable-to-normal

是否將源端的可追加(appendable)類型檔案轉換為普通(normal)或分區(multipart)檔案進行遷移。

預設值:false

調度規則

--max-schedule-count

周期性調度任務的最大執行輪次,達到輪次限制後任務將不再自動調度,但仍能手動調度。

--start-cron-expression

任務啟動調度規則。使用標準的 6 位 Cron 運算式(秒 分 時 日 月 周)。
樣本:"0 0 2 * * *" 表示每天淩晨 2 點啟動任務。

--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

源地址與目的地址相同的任務已存在,請避免重複建立。