全部產品
Search
文件中心

Object Storage Service:使用大量操作處理億級對象

更新時間:Feb 10, 2026

大量操作功能支援單作業處理100億對象,無需編碼即可完成標籤管理、ACL修改、資料解凍等操作。

適用範圍

大量操作功能目前處於邀測階段,僅在華東1(杭州)、華東2(上海)、華南1(深圳)、華北2(北京)、華北3(張家口)、華北6(烏蘭察布)、新加坡地區開放。如需使用,請聯絡支援人員申請開通。

操作概覽

  1. 建立RAM角色:允許 OSS 服務讀取資訊清單檔、執行大量操作並產生報告檔案。

  2. 準備輸入清單:通過儲存空間資訊清單檔(manifest.json)、首碼(Prefix)或 CSV 資訊清單檔(manifest.csv)指定待處理的物件範圍。

  3. 建立作業:配置具體操作(標籤、許可權、解凍等)並提交作業。

  4. 作業管理與營運:監控作業狀態,確認待執行的作業,查看執行報告,必要時調整優先順序或取消作業。

步驟一:建立RAM角色

  1. 前往 RAM 控制台,建立角色。選擇信任的實體類型為雲端服務,信任主體名稱選擇Object Storage Service

  2. 為該角色建立並附加一個自訂權限原則。策略內容如下,將 your-bucket 替換為實際的 Bucket 名稱。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oss:GetBucketInfo",
            "oss:ListObjects",
            "oss:GetObject",
            "oss:GetObjectTagging",
            "oss:PutObjectTagging",
            "oss:DeleteObjectTagging",
            "oss:PutObjectAcl",
            "oss:RestoreObject",
            "oss:PutObject"
          ],
          "Resource": [
            "acs:oss:*:*:your-bucket",
            "acs:oss:*:*:your-bucket/*"
          ]
        }
      ]
    }

    許可權說明

    • 必需許可權

      • oss:GetBucketInfo - 擷取儲存空間資訊

    • 輸入清單相關許可權

      • oss:ListObjects - 使用首碼產生方式時需要

      • oss:GetObject - 使用儲存空間資訊清單檔或 CSV 資訊清單檔時需要

    • 大量操作相關許可權

      • oss:GetObjectTagging - 批量替換標籤時需要(讀取現有標籤)

      • oss:PutObjectTagging - 大量新增標籤或批量替換標籤時需要

      • oss:DeleteObjectTagging - 大量刪除標籤時需要

      • oss:PutObjectAcl - 批量修改許可權時需要

      • oss:RestoreObject - 批量解凍歸檔對象時需要

    • 報告輸出許可權

      • oss:PutObject - 上傳大量操作報告檔案時需要

  3. 記錄下該角色的 ARN(例如 acs:ram::<your-account-uid>:role/BatchRole),後續步驟將用到。

步驟二:準備輸入清單

大量操作需要指定要處理哪些對象。根據情境不同,可以選擇以下三種方式:

  • 儲存空間資訊清單檔:適合大規模、定期重複的大量操作

  • 首碼:處理某個目錄下的所有對象

  • CSV 資訊清單檔:待處理對象列表的 CSV 檔案

儲存空間資訊清單檔

使用儲存空間清單自動產生的資訊清單檔。

<Manifest>
    <Location>
        <ETag>495B279A99C2BA72A66CA1E23B5FEA13</ETag>
        <Bucket>my-bucket</Bucket>
        <Object>inventory-reports/my-bucket/daily-inventory/2025-10-29T12-49Z/manifest.json</Object>
    </Location>
    <Spec>
        <Format>OSS_InventoryReport_CSV_20250611</Format>
    </Spec>
</Manifest>

配置說明

  • ETag:使用 manifest.json 檔案的 ETag 值

  • FormatOSS_InventoryReport_CSV_20250611

首碼

根據首碼自動產生對象列表。

<KeyPrefixManifestGenerator>
    <SourceBucket>my-bucket</SourceBucket>
    <Prefix>documents/2024/</Prefix>
</KeyPrefixManifestGenerator>

CSV 資訊清單檔

通過 CSV 檔案精確列出對象。CSV 資訊清單檔必須上傳到 OSS,並且與批量作業在相同地區。

<Manifest>
    <Location>
        <Bucket>my-bucket</Bucket>
        <Object>manifest.csv</Object>
        <ETag>1466CA50719515AAE6F92101D83B6A20</ETag>
    </Location>
    <Spec>
        <Format>OSS_BatchOperations_CSV_20250611</Format>
        <Fields>Bucket,Key</Fields>
    </Spec>
</Manifest>

配置說明

  • ETag:使用 manifest.csv 的 ETag 值

  • Fields:明確 CSV 檔案的列定義

    • 未開啟版本控制:Bucket,Key

    • 開啟版本控制:Bucket,Key,VersionId

  • FormatOSS_BatchOperations_CSV_20250611

CSV 檔案格式要求

  • 檔案編碼:必須使用 UTF-8 編碼

  • 欄位分隔符號:使用英文逗號(,)分隔

  • Object Key 編碼:必須經過 URL 編碼(例如:documents%2Freport1.pdf

  • 不支援注釋:CSV 檔案中不能包含注釋行

CSV 檔案樣本

  • 未開啟版本控制

    my-bucket,documents%2Freport1.pdf
    my-bucket,documents%2Freport2.pdf
    my-bucket,images%2Fphoto1.jpg
  • 開啟版本控制

    my-bucket,important%2Fdata.json,3/L4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo
    my-bucket,config%2Fsettings.xml,null

步驟三:建立作業

批量替換標籤

替換操作會刪除對象原有的所有標籤。單個對象最多支援10個標籤,所有標籤索引值的總長度不能超過1KB,標籤鍵不能重複且區分大小寫。

警告

如果有配置生命週期規則,且生命週期規則依賴批量替換標籤的結果時,務必要檢查批量替換標籤的最終執行結果,一個作業執行完後,無論作業是執行中、完成、失敗、暫停、還是取消狀態,均有可能部分Object完成標籤替換,部分Object標籤替換失敗,使用時請查詢結果的成功數、失敗數等資訊,確保標籤替換結果符合預期。

ossutil2.0

ossutil api invoke-operation --op-name create-job --method POST --parameters batchJob --body file:///path/to/config.xml --endpoint oss-cn-hangzhou.aliyuncs.com

儲存空間資訊清單檔

<CreateJobRequest>
    <ConfirmationRequired>true</ConfirmationRequired>
    <Operation>
        <PutObjectTagging>
            <TagSet>
                <Tag><Key>Environment</Key><Value>Production</Value></Tag>
                <Tag><Key>Team</Key><Value>DataOps</Value></Tag>
            </TagSet>
        </PutObjectTagging>
    </Operation>
    <Report>
        <Bucket>my-bucket</Bucket>
        <Enabled>true</Enabled>
        <Prefix>batch-reports/</Prefix>
        <ReportScope>AllTasks</ReportScope>
    </Report>
    <ClientRequestToken>put-tag-inventory-job-001</ClientRequestToken>
    <Manifest>
        <Location>
            <ETag>495B279A99C2BA72A66CA1E23B5FEA13</ETag>
            <Bucket>my-bucket</Bucket>
            <Object>inventory-reports/my-bucket/daily-inventory/2025-10-29T12-49Z/manifest.json</Object>
        </Location>
        <Spec>
            <Format>OSS_InventoryReport_CSV_20250611</Format>
        </Spec>
    </Manifest>
    <Description>Batch replace tags using Inventory manifest</Description>
    <Priority>10</Priority>
    <RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>

首碼

<CreateJobRequest>
    <ConfirmationRequired>true</ConfirmationRequired>
    <Operation>
        <PutObjectTagging>
            <TagSet>
                <Tag><Key>Environment</Key><Value>Production</Value></Tag>
                <Tag><Key>Team</Key><Value>DataOps</Value></Tag>
            </TagSet>
        </PutObjectTagging>
    </Operation>
    <Report>
        <Bucket>my-bucket</Bucket>
        <Enabled>true</Enabled>
        <Prefix>batch-reports/</Prefix>
        <ReportScope>AllTasks</ReportScope>
    </Report>
    <ClientRequestToken>put-tag-job-001</ClientRequestToken>
    <KeyPrefixManifestGenerator>
        <SourceBucket>my-bucket</SourceBucket>
        <Prefix>documents/2024/</Prefix>
    </KeyPrefixManifestGenerator>
    <Description>Batch replace tags for documents</Description>
    <Priority>10</Priority>
    <RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>

CSV 資訊清單檔

<CreateJobRequest>
    <ConfirmationRequired>true</ConfirmationRequired>
    <Operation>
        <PutObjectTagging>
            <TagSet>
                <Tag><Key>Environment</Key><Value>Production</Value></Tag>
                <Tag><Key>Team</Key><Value>DataOps</Value></Tag>
            </TagSet>
        </PutObjectTagging>
    </Operation>
    <Report>
        <Bucket>my-bucket</Bucket>
        <Enabled>true</Enabled>
        <Prefix>batch-reports/</Prefix>
        <ReportScope>AllTasks</ReportScope>
    </Report>
    <ClientRequestToken>put-tag-job-001</ClientRequestToken>
    <Manifest>
        <Location>
            <ETag>1466CA50719515AAE6F92101D83B6A20</ETag>
            <Bucket>my-bucket</Bucket>
            <Object>manifest.csv</Object>
        </Location>
        <Spec>
            <Fields>Bucket,Key</Fields>
            <Format>OSS_BatchOperations_CSV_20250611</Format>
        </Spec>
    </Manifest>
    <Description>Batch replace tags for specified objects</Description>
    <Priority>10</Priority>
    <RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>

返回樣本

<?xml version="1.0" encoding="UTF-8"?>
<CreateJobResult>
  <JobId>ODRiZWQ5Njc5ZTE0NDE5NTlmNjJmZDlkMTk2ODI2NDU=</JobId>
</CreateJobResult>

作業建立後會進入 Suspended(暫停)狀態,查看作業狀態確認配置無誤後,再手動確認待執行作業

API

調用CreateJob介面建立批量作業,在XML配置的<Operation>節點中指定<PutObjectTagging>操作類型,通過<TagSet>定義新的標籤集合來完全替換對象現有標籤。

大量新增標籤

大量新增標籤操作會在對象現有標籤基礎上添加新標籤,保留原有的所有標籤,適用於標籤補充情境。需要注意的是,如果新增標籤的key與現有標籤的key重複,則新增標籤的value會覆蓋現有標籤的value。由於這是非原子性操作,在高並發情境下可能存在標籤丟失的風險,建議避免與其他標籤操作並發執行,確保資料一致性。

警告

如果有配置生命週期規則,且生命週期規則依賴大量新增標籤的結果時,務必要檢查大量新增標籤的最終執行結果,一個作業執行完後,無論作業是執行中、完成、失敗、暫停、還是取消狀態,均有可能部分Object完成打標,部分Object打標失敗,使用時請查詢結果的成功數、失敗數等資訊,確保打標結果符合預期。

ossutil2.0

ossutil api invoke-operation --op-name create-job --method POST --parameters batchJob --body file:///path/to/config.xml --endpoint oss-cn-hangzhou.aliyuncs.com

儲存空間資訊清單檔

<CreateJobRequest>
    <ConfirmationRequired>true</ConfirmationRequired>
    <Operation>
        <AddObjectTagging>
            <TagSet>
                <Tag><Key>Department</Key><Value>Engineering</Value></Tag>
                <Tag><Key>Project</Key><Value>BatchOps</Value></Tag>
            </TagSet>
        </AddObjectTagging>
    </Operation>
    <Report>
        <Bucket>my-bucket</Bucket>
        <Enabled>true</Enabled>
        <Prefix>batch-reports/</Prefix>
        <ReportScope>AllTasks</ReportScope>
    </Report>
    <ClientRequestToken>add-tag-inventory-job-001</ClientRequestToken>
    <Manifest>
        <Location>
            <ETag>495B279A99C2BA72A66CA1E23B5FEA13</ETag>
            <Bucket>my-bucket</Bucket>
            <Object>inventory-reports/my-bucket/daily-inventory/2025-10-29T12-49Z/manifest.json</Object>
        </Location>
        <Spec>
            <Format>OSS_InventoryReport_CSV_20250611</Format>
        </Spec>
    </Manifest>
    <Description>Batch add tags using Inventory manifest</Description>
    <Priority>10</Priority>
    <RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>

首碼

<CreateJobRequest>
    <ConfirmationRequired>true</ConfirmationRequired>
    <Operation>
        <AddObjectTagging>
            <TagSet>
                <Tag><Key>Department</Key><Value>Engineering</Value></Tag>
                <Tag><Key>Project</Key><Value>BatchOps</Value></Tag>
            </TagSet>
        </AddObjectTagging>
    </Operation>
    <Report>
        <Bucket>my-bucket</Bucket>
        <Enabled>true</Enabled>
        <Prefix>batch-reports/</Prefix>
        <ReportScope>AllTasks</ReportScope>
    </Report>
    <ClientRequestToken>add-tag-job-001</ClientRequestToken>
    <KeyPrefixManifestGenerator>
        <SourceBucket>my-bucket</SourceBucket>
        <Prefix>documents/2024/</Prefix>
    </KeyPrefixManifestGenerator>
    <Description>Batch add tags to documents</Description>
    <Priority>10</Priority>
    <RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>

CSV 資訊清單檔

<CreateJobRequest>
    <ConfirmationRequired>true</ConfirmationRequired>
    <Operation>
        <AddObjectTagging>
            <TagSet>
                <Tag><Key>Department</Key><Value>Engineering</Value></Tag>
                <Tag><Key>Project</Key><Value>BatchOps</Value></Tag>
            </TagSet>
        </AddObjectTagging>
    </Operation>
    <Report>
        <Bucket>my-bucket</Bucket>
        <Enabled>true</Enabled>
        <Prefix>batch-reports/</Prefix>
        <ReportScope>AllTasks</ReportScope>
    </Report>
    <ClientRequestToken>add-tag-job-001</ClientRequestToken>
    <Manifest>
        <Location>
            <ETag>1466CA50719515AAE6F92101D83B6A20</ETag>
            <Bucket>my-bucket</Bucket>
            <Object>manifest.csv</Object>
        </Location>
        <Spec>
            <Fields>Bucket,Key</Fields>
            <Format>OSS_BatchOperations_CSV_20250611</Format>
        </Spec>
    </Manifest>
    <Description>Batch add tags to specified objects</Description>
    <Priority>10</Priority>
    <RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>

返回樣本

<?xml version="1.0" encoding="UTF-8"?>
<CreateJobResult>
  <JobId>Nzg5ZjE3ZTU5OGMxNDZjZDk0YjJiODMzZDZiZjA0ZmU=</JobId>
</CreateJobResult>

作業建立後會進入 Suspended(暫停)狀態,查看作業狀態確認配置無誤後,再手動確認待執行作業

API

調用CreateJob介面建立批量作業,在XML配置的<Operation>節點中指定<AddObjectTagging>操作類型,通過<TagSet>定義新增的標籤,系統會在保留現有標籤的基礎上添加新標籤。

大量刪除標籤

大量刪除標籤操作會刪除指定對象的所有標籤,刪除後對象的標籤數量將變為0,適用於標籤清理情境。

警告
  • 此操作是無法復原的,一旦執行就無法恢複被刪除的標籤,建議在生產環境執行前先在測試環境進行驗證,確保不會影響商務邏輯。

  • 如果有配置生命週期規則,且生命週期規則依賴大量刪除標籤的結果時,務必要檢查大量刪除標籤的最終執行結果,一個作業執行完後,無論作業是執行中、完成、失敗、暫停、還是取消狀態,均有可能部分Object完成標籤刪除,部分Object標籤刪除失敗,使用時請查詢結果的成功數、失敗數等資訊,確保標籤刪除結果符合預期。

ossutil2.0

ossutil api invoke-operation --op-name create-job --method POST --parameters batchJob --body file:///path/to/config.xml --endpoint oss-cn-hangzhou.aliyuncs.com

儲存空間資訊清單檔

<CreateJobRequest>
    <ConfirmationRequired>true</ConfirmationRequired>
    <Operation>
        <DeleteObjectTagging />
    </Operation>
    <Report>
        <Bucket>my-bucket</Bucket>
        <Enabled>true</Enabled>
        <Prefix>batch-reports/</Prefix>
        <ReportScope>AllTasks</ReportScope>
    </Report>
    <ClientRequestToken>delete-tag-inventory-job-001</ClientRequestToken>
    <Manifest>
        <Location>
            <ETag>495B279A99C2BA72A66CA1E23B5FEA13</ETag>
            <Bucket>my-bucket</Bucket>
            <Object>inventory-reports/my-bucket/daily-inventory/2025-10-29T12-49Z/manifest.json</Object>
        </Location>
        <Spec>
            <Format>OSS_InventoryReport_CSV_20250611</Format>
        </Spec>
    </Manifest>
    <Description>Batch delete tags using Inventory manifest</Description>
    <Priority>10</Priority>
    <RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>

首碼

<CreateJobRequest>
    <ConfirmationRequired>true</ConfirmationRequired>
    <Operation>
        <DeleteObjectTagging />
    </Operation>
    <Report>
        <Bucket>my-bucket</Bucket>
        <Enabled>true</Enabled>
        <Prefix>batch-reports/</Prefix>
        <ReportScope>AllTasks</ReportScope>
    </Report>
    <ClientRequestToken>delete-tag-job-001</ClientRequestToken>
    <KeyPrefixManifestGenerator>
        <SourceBucket>my-bucket</SourceBucket>
        <Prefix>documents/2024/</Prefix>
    </KeyPrefixManifestGenerator>
    <Description>Batch delete tags for documents</Description>
    <Priority>10</Priority>
    <RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>

CSV 資訊清單檔

<CreateJobRequest>
    <ConfirmationRequired>true</ConfirmationRequired>
    <Operation>
        <DeleteObjectTagging />
    </Operation>
    <Report>
        <Bucket>my-bucket</Bucket>
        <Enabled>true</Enabled>
        <Prefix>batch-reports/</Prefix>
        <ReportScope>AllTasks</ReportScope>
    </Report>
    <ClientRequestToken>delete-tag-job-001</ClientRequestToken>
    <Manifest>
        <Location>
            <ETag>1466CA50719515AAE6F92101D83B6A20</ETag>
            <Bucket>my-bucket</Bucket>
            <Object>manifest.csv</Object>
        </Location>
        <Spec>
            <Fields>Bucket,Key</Fields>
            <Format>OSS_BatchOperations_CSV_20250611</Format>
        </Spec>
    </Manifest>
    <Description>Batch delete tags for specified objects</Description>
    <Priority>10</Priority>
    <RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>

返回樣本

<?xml version="1.0" encoding="UTF-8"?>
<CreateJobResult>
  <JobId>NTVlYmQ4ZmQyOTM0NDJmY2E2NmNjYTUwNjU1ZGRkMGM=</JobId>
</CreateJobResult>

作業建立後會進入 Suspended(暫停)狀態,查看作業狀態確認配置無誤後,再手動確認待執行作業

API

調用CreateJob介面建立批量作業,在XML配置的<Operation>節點中指定<DeleteObjectTagging/>操作類型(無需額外參數),系統會刪除指定對象的所有標籤。

批量修改許可權

批量許可權修改支援四種ACL類型:private(僅所有者可讀寫)、public-read(所有人可讀僅所有者可寫)、public-read-write(所有人可讀寫)和default(繼承Bucket使用權限設定)。許可權修改後會立即生效,直接影響對象的存取權限,請根據業務需求謹慎選擇合適的權限類別型。

ossutil2.0

ossutil api invoke-operation --op-name create-job --method POST --parameters batchJob --body file:///path/to/config.xml --endpoint oss-cn-hangzhou.aliyuncs.com

儲存空間資訊清單檔

<CreateJobRequest>
    <ConfirmationRequired>true</ConfirmationRequired>
    <Operation>
        <PutObjectAcl>
            <ObjectAcl>private</ObjectAcl>
        </PutObjectAcl>
    </Operation>
    <Report>
        <Bucket>my-bucket</Bucket>
        <Enabled>true</Enabled>
        <Prefix>batch-reports/</Prefix>
        <ReportScope>AllTasks</ReportScope>
    </Report>
    <ClientRequestToken>acl-inventory-job-001</ClientRequestToken>
    <Manifest>
        <Location>
            <ETag>495B279A99C2BA72A66CA1E23B5FEA13</ETag>
            <Bucket>my-bucket</Bucket>
            <Object>inventory-reports/my-bucket/daily-inventory/2025-10-29T12-49Z/manifest.json</Object>
        </Location>
        <Spec>
            <Format>OSS_InventoryReport_CSV_20250611</Format>
        </Spec>
    </Manifest>
    <Description>Batch change ACL using Inventory manifest</Description>
    <Priority>10</Priority>
    <RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>

首碼

<CreateJobRequest>
    <ConfirmationRequired>true</ConfirmationRequired>
    <Operation>
        <PutObjectAcl>
            <ObjectAcl>private</ObjectAcl>
        </PutObjectAcl>
    </Operation>
    <Report>
        <Bucket>my-bucket</Bucket>
        <Enabled>true</Enabled>
        <Prefix>batch-reports/</Prefix>
        <ReportScope>AllTasks</ReportScope>
    </Report>
    <ClientRequestToken>acl-job-001</ClientRequestToken>
    <KeyPrefixManifestGenerator>
        <SourceBucket>my-bucket</SourceBucket>
        <Prefix>documents/2024/</Prefix>
    </KeyPrefixManifestGenerator>
    <Description>Batch change ACL to private for documents</Description>
    <Priority>10</Priority>
    <RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>

CSV 資訊清單檔

<CreateJobRequest>
    <ConfirmationRequired>true</ConfirmationRequired>
    <Operation>
        <PutObjectAcl>
            <ObjectAcl>private</ObjectAcl>
        </PutObjectAcl>
    </Operation>
    <Report>
        <Bucket>my-bucket</Bucket>
        <Enabled>true</Enabled>
        <Prefix>batch-reports/</Prefix>
        <ReportScope>AllTasks</ReportScope>
    </Report>
    <ClientRequestToken>acl-job-001</ClientRequestToken>
    <Manifest>
        <Location>
            <ETag>1466CA50719515AAE6F92101D83B6A20</ETag>
            <Bucket>my-bucket</Bucket>
            <Object>manifest.csv</Object>
        </Location>
        <Spec>
            <Fields>Bucket,Key</Fields>
            <Format>OSS_BatchOperations_CSV_20250611</Format>
        </Spec>
    </Manifest>
    <Description>Batch change ACL to private for specified objects</Description>
    <Priority>10</Priority>
    <RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>

返回樣本

<?xml version="1.0" encoding="UTF-8"?>
<CreateJobResult>
  <JobId>YWNsR29iMTIzNDU2Nzg5MA==</JobId>
</CreateJobResult>

作業建立後會進入 Suspended(暫停)狀態,查看作業狀態確認配置無誤後,再手動確認待執行作業

API

調用CreateJob介面建立批量作業,在XML配置的<Operation>節點中指定<PutObjectAcl>操作類型,通過<ObjectAcl>參數設定目標許可權(private/public-read/public-read-write/default)。

批量資料解凍

批量解凍操作支援Archive、ColdArchive、DeepColdArchive三種Archive Storage類型的對象。Archive類型的對象解凍通常在1小時內完成,可保持1-7天的可訪問狀態。ColdArchive類型支援Standard模式(2-5小時完成)和Bulk模式(5-12小時完成)兩種解凍速度。DeepColdArchive類型僅支援Standard模式,需要48小時內完成解凍。解凍天數可設定為1-365天範圍內的任意值。

重要

如果操作的對象的儲存類型和解凍模式或解凍天數不匹配,對應操作將會失敗。

ossutil2.0

ossutil api invoke-operation --op-name create-job --method POST --parameters batchJob --body file:///path/to/config.xml --endpoint oss-cn-hangzhou.aliyuncs.com

儲存空間資訊清單檔

<CreateJobRequest>
    <ConfirmationRequired>true</ConfirmationRequired>
    <Operation>
        <RestoreObject>
            <Days>7</Days>
            <Tier>Standard</Tier>
        </RestoreObject>
    </Operation>
    <Report>
        <Bucket>my-bucket</Bucket>
        <Enabled>true</Enabled>
        <Prefix>batch-reports/</Prefix>
        <ReportScope>AllTasks</ReportScope>
    </Report>
    <ClientRequestToken>restore-inventory-job-001</ClientRequestToken>
    <Manifest>
        <Location>
            <ETag>495B279A99C2BA72A66CA1E23B5FEA13</ETag>
            <Bucket>my-bucket</Bucket>
            <Object>inventory-reports/my-bucket/daily-inventory/2025-10-29T12-49Z/manifest.json</Object>
        </Location>
        <Spec>
            <Format>OSS_InventoryReport_CSV_20250611</Format>
        </Spec>
    </Manifest>
    <Description>Batch restore using Inventory manifest for 7 days</Description>
    <Priority>10</Priority>
    <RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>

首碼

<CreateJobRequest>
    <ConfirmationRequired>true</ConfirmationRequired>
    <Operation>
        <RestoreObject>
            <Days>7</Days>
            <Tier>Standard</Tier>
        </RestoreObject>
    </Operation>
    <Report>
        <Bucket>my-bucket</Bucket>
        <Enabled>true</Enabled>
        <Prefix>batch-reports/</Prefix>
        <ReportScope>AllTasks</ReportScope>
    </Report>
    <ClientRequestToken>restore-job-001</ClientRequestToken>
    <KeyPrefixManifestGenerator>
        <SourceBucket>my-bucket</SourceBucket>
        <Prefix>archive/2024/</Prefix>
    </KeyPrefixManifestGenerator>
    <Description>Batch restore archive objects for 7 days</Description>
    <Priority>10</Priority>
    <RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>

CSV 資訊清單檔

<CreateJobRequest>
    <ConfirmationRequired>true</ConfirmationRequired>
    <Operation>
        <RestoreObject>
            <Days>7</Days>
            <Tier>Standard</Tier>
        </RestoreObject>
    </Operation>
    <Report>
        <Bucket>my-bucket</Bucket>
        <Enabled>true</Enabled>
        <Prefix>batch-reports/</Prefix>
        <ReportScope>AllTasks</ReportScope>
    </Report>
    <ClientRequestToken>restore-job-001</ClientRequestToken>
    <Manifest>
        <Location>
            <ETag>1466CA50719515AAE6F92101D83B6A20</ETag>
            <Bucket>my-bucket</Bucket>
            <Object>manifest.csv</Object>
        </Location>
        <Spec>
            <Fields>Bucket,Key</Fields>
            <Format>OSS_BatchOperations_CSV_20250611</Format>
        </Spec>
    </Manifest>
    <Description>Batch restore specified archive objects for 7 days</Description>
    <Priority>10</Priority>
    <RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
</CreateJobRequest>

返回樣本

<?xml version="1.0" encoding="UTF-8"?>
<CreateJobResult>
  <JobId>cmVzdG9yZUpvYjEyMzQ1Njc4OTA=</JobId>
</CreateJobResult>

作業建立後會進入 Suspended(暫停)狀態,查看作業狀態確認配置無誤後,再手動確認待執行作業

API

調用CreateJob介面建立批量作業,在XML配置的<Operation>節點中指定<RestoreObject>操作類型,通過<Days>設定解凍天數(1-365)和<Tier>設定解凍模式(Standard/Bulk)。

步驟四:作業管理與營運

查看作業狀態

建立作業後,通過查詢作業詳細資料監控和確認作業狀態。查看作業詳情可以擷取指定作業的完整狀態資訊,包括執行進度、配置參數等。

重要

作業狀態為Complete並不代表所有對象都處理成功,仍需要查看詳細報告來確認最終結果。

ossutil2.0

ossutil api invoke-operation --op-name describe-job --method GET --parameters batchJob --parameters batchJobId=<JobId> --endpoint oss-cn-hangzhou.aliyuncs.com

返回樣本

<?xml version="1.0" encoding="UTF-8"?>
<DescribeJobResult>
  <Job>
    <ConfirmationRequired>true</ConfirmationRequired>
    <CreationTime>1761723644</CreationTime>
    <FailureReasons>
      <JobFailure />
    </FailureReasons>
    <JobId>M2E0ODMyNmJjYmYzNGY0ZThiYjMyMmI1ZDE1YWE0OGE=</JobId>
    <Operation>
      <PutObjectTagging>
        <TagSet>
          <Tag>
            <Key>Environment</Key>
            <Value>Production</Value>
          </Tag>
          <Tag>
            <Key>Team</Key>
            <Value>DataOps</Value>
          </Tag>
        </TagSet>
      </PutObjectTagging>
    </Operation>
    <Report>
      <Enabled>true</Enabled>
      <Bucket>my-bucket</Bucket>
      <Prefix>batch-reports/</Prefix>
      <ReportScope>AllTasks</ReportScope>
    </Report>
    <Manifest>
      <Location>
        <ETag>1466CA50719515AAE6F92101D83B6A20</ETag>
        <Bucket>my-bucket</Bucket>
        <Object>manifest.csv</Object>
      </Location>
      <Spec>
        <Format>OSS_BatchOperations_CSV_20250611</Format>
        <Fields>Bucket,Key</Fields>
      </Spec>
    </Manifest>
    <Description>Test task for Suspended status</Description>
    <Priority>10</Priority>
    <RoleArn>acs:ram::<your-account-uid>:role/BatchRole</RoleArn>
    <ProgressSummary>
      <NumberOfTasksFailed>0</NumberOfTasksFailed>
      <NumberOfTasksSucceeded>0</NumberOfTasksSucceeded>
      <TotalNumberOfTasks>3</TotalNumberOfTasks>
      <Timers>
        <ElapsedTimeInActiveSeconds>-1</ElapsedTimeInActiveSeconds>
      </Timers>
    </ProgressSummary>
    <Status>Suspended</Status>
    <TerminationDate>-1</TerminationDate>
  </Job>
</DescribeJobResult>

狀態說明

  • ConfirmationRequired: true - 設定為需要確認

  • Status: Suspended - 作業已暫停,等待使用者確認

  • TotalNumberOfTasks: 3 - 預計將處理 3 個對象

  • NumberOfTasksSucceeded: 0 - 尚未開始執行

  • ElapsedTimeInActiveSeconds: -1 - 尚未開始執行,因此執行時間為 -1

API

通過DescribeJob介面擷取指定作業的詳細資料,包括執行狀態、進度統計、配置參數和錯誤資訊。

確認待執行作業

將Suspended狀態轉為Ready狀態,作業進入執行隊列。超過14天未確認將自動轉為Failed。

ossutil2.0

ossutil api invoke-operation --op-name update-job-status --method POST --parameters batchJobStatus --parameters batchJobId=<JobId> --parameters requestedJobStatus=Ready --endpoint oss-cn-hangzhou.aliyuncs.com

返回樣本

<?xml version="1.0" encoding="UTF-8"?>
<UpdateJobStatusResult>
  <JobId>NGFhNmFmZDRlNTcxNDE2OGFhY2FjYWQyNDcxYjc3YzM=</JobId>
  <Status>Ready</Status>
</UpdateJobStatusResult>

API

通過UpdateJobStatus介面確認作業執行,將作業從Suspended狀態轉換為Ready狀態,開始排隊執行。

批量查詢作業列表

查看所有作業。批量查詢功能支援按作業狀態和建立時間範圍篩選作業列表,可以設定返回數量限制並支援分頁查詢,方便管理大量作業。查詢結果預設按照建立時間倒序排列,最新建立的作業會顯示在前面。

ossutil2.0

ossutil api invoke-operation --op-name list-jobs --method GET --parameters batchJob --parameters maxKeys=100 --endpoint oss-cn-hangzhou.aliyuncs.com

返回樣本

<?xml version="1.0" encoding="UTF-8"?>
<ListJobsResult>
  <Jobs>
    <Job>
      <JobId>OTE5ZGU1NWMxNjkyNGFkMjhkYTNmOGEzNTU2YmJiOWE=</JobId>
      <Status>Complete</Status>
      <CreationTime>1761666548</CreationTime>
    </Job>
  </Jobs>
</ListJobsResult>

API

通過ListJobs介面查詢帳號下的批量作業列表,支援按狀態、時間範圍篩選和分頁查詢,便於作業管理和監控。

調整作業優先順序

優先順序範圍0-2147483647,數值越大優先順序越高。作業優先順序不能保證絕對的作業執行順序,OSS 只能儘力給高優先順序作業傾斜更多資源。

ossutil2.0

ossutil api invoke-operation --op-name update-job-priority --method POST --parameters batchJobPriority --parameters batchJobId=<JobId> --parameters priority=1000 --endpoint oss-cn-hangzhou.aliyuncs.com

返回樣本

<?xml version="1.0" encoding="UTF-8"?>
<UpdateJobPriorityResult>
  <JobId>OTE5ZGU1NWMxNjkyNGFkMjhkYTNmOGEzNTU2YmJiOWE=</JobId>
  <Priority>1000</Priority>
</UpdateJobPriorityResult>

API

通過UpdateJobPriority介面調整作業的執行優先順序,實現資源調度和緊急作業處理。

取消作業

終止正在執行或等待執行的作業。已處理的對象無法復原。

ossutil2.0

ossutil api invoke-operation --op-name update-job-status --method POST --parameters batchJob --parameters batchJobId=<JobId> --parameters requestedJobStatus=Cancelled --endpoint oss-cn-hangzhou.aliyuncs.com

返回樣本

<?xml version="1.0" encoding="UTF-8"?>
<UpdateJobStatusResult>
  <JobId>OTE5ZGU1NWMxNjkyNGFkMjhkYTNmOGEzNTU2YmJiOWE=</JobId>
  <Status>Cancelled</Status>
</UpdateJobStatusResult>

API

通過UpdateJobStatus介面將作業狀態設定為Cancelled,停止作業執行並釋放資源。

查看作業報告

作業執行完成後,系統會在您指定的報告路徑下產生詳細的執行報告。報告包含兩類關鍵檔案:manifest.json(報告資訊清單檔)和 CSV 格式的詳細報告檔案。通過這些報告可以瞭解每個對象的處理狀態、HTTP響應碼以及失敗原因,為故障排查和結果驗證提供依據。

重要

無論作業處於執行中、完成、失敗、暫停還是取消狀態,都可能存在部分對象已完成處理、部分對象處理失敗的情況。務必查看詳細報告確認實際執行結果。

報告儲存位置

報告檔案儲存體在建立作業時通過<Report>節點指定的路徑下,路徑格式為:

<Bucket>/<Prefix>/<JobId>/results/

例如,如果您在建立作業時設定:

<Report>
    <Bucket>my-bucket</Bucket>
    <Prefix>batch-reports/</Prefix>
    <ReportScope>AllTasks</ReportScope>
</Report>

報告檔案將儲存在:my-bucket/batch-reports/<JobId>/results/

報告檔案結構

報告由兩部分組成:

1. 報告資訊清單檔(manifest.json)

JSON 格式檔案,記錄報告中繼資料和 CSV 報告檔案位置。

成功作業的資訊清單檔樣本:

{
  "Format": "Report_CSV_20250901",
  "ReportCreationDate": "2025-10-31T07:18:56Z",
  "Results": [
    {
      "TaskExecutionStatus": "succeeded",
      "Bucket": "test-bucket",
      "MD5Checksum": "\"424356315f4a82c1b6a4c190dbed15d9\"",
      "Key": "reports/prefix-job-0/job-MTRiZGI1NDFiMTI2NDFiNDg0YWQyYTM2YmY1NzNjNDM=/results/report-0.csv"
    }
  ],
  "ReportSchema": "Bucket,Key,VersionId,HTTPStatus,Error"
}

失敗作業的資訊清單檔樣本:

{
  "Format": "Report_CSV_20250901",
  "ReportCreationDate": "2025-10-31T07:37:56Z",
  "Results": [
    {
      "TaskExecutionStatus": "failed",
      "Bucket": "test-bucket",
      "MD5Checksum": "\"85749f22b5b62b161daf00b4adcf6da7\"",
      "Key": "reports/prefix-job-0/job-M2E4MDkwNGJmNmQzNDgwYmE4ODI1YjdjNDgyNjk5NmM=/results/report-0.csv"
    }
  ],
  "ReportSchema": "Bucket,Key,VersionId,HTTPStatus,Error"
}

欄位說明:

  • Format:報告格式版本,固定為 Report_CSV_20250901

  • ReportCreationDate:報告產生時間(UTC時間)

  • TaskExecutionStatus:整體執行狀態(succeeded 表示全部成功,failed 表示全部失敗)

  • ReportSchema:CSV 報告的列定義

2. CSV 詳細報告檔案

記錄每個對象的詳細處理結果,包含以下列:

  • Bucket:對象所在的儲存空間

  • Key:對象名稱(經過 URL 編碼)

  • VersionId:版本ID(未開啟版本控制時為空白)

  • HTTPStatus:HTTP 響應狀態代碼(200 表示成功)

  • Error:錯誤詳情(成功時為空白)

成功處理的 CSV 報告樣本:

test-bucket,batchOperation%2F1761895099%2Fobject-1.txt,,200,
test-bucket,batchOperation%2F1761895099%2Fobject-9.txt,,200,
test-bucket,batchOperation%2F1761895099%2Fobject-4.txt,,200,
test-bucket,batchOperation%2F1761895099%2Fobject-8.txt,,200,
test-bucket,batchOperation%2F1761895099%2Fobject-3.txt,,200,

失敗處理的 CSV 報告樣本:

test-bucket,batchOperation%2F1761896253%2Fobject-0.txt,,403,"Error returned by Service. {""EC"":""0003-00000001"",""Error Code"":""AccessDenied"",""Http Status Code"":403,""Message"":""You have no right to access this object."",""Request Endpoint"":""PUT http://test-bucket.oss-cn-hangzhou-internal.aliyuncs.com/batchOperation/1761896253/object-0.txt?tagging"",""Request Id"":""690467520D9F2E3232004FFD"",""Timestamp"":""2025-10-31T07:37:54Z""}"
test-bucket,batchOperation%2F1761896253%2Fobject-7.txt,,403,"Error returned by Service. {""EC"":""0003-00000001"",""Error Code"":""AccessDenied"",""Http Status Code"":403,""Message"":""You have no right to access this object."",""Request Endpoint"":""PUT http://test-bucket.oss-cn-hangzhou-internal.aliyuncs.com/batchOperation/1761896253/object-7.txt?tagging"",""Request Id"":""69046752A016113937EB7029"",""Timestamp"":""2025-10-31T07:37:54Z""}"

下載和分析報告

  1. 定位報告檔案:通過 DescribeJob 介面擷取作業詳情,在返回結果的 <Report> 節點中尋找報告路徑。

  2. 下載 manifest.json:從報告路徑下載資訊清單檔,查看 TaskExecutionStatusResults 節點瞭解整體執行狀態。

  3. 下載 CSV 報告:根據 manifest.json 中 Results[ ].Key 欄位指定的路徑下載詳細的 CSV 報告檔案。

  4. 分析執行結果

    • 查看 HTTPStatus 列:2xx 表示成功,4xx/5xx 表示失敗

    • 對於失敗記錄,查看 Error 列中的錯誤碼和詳細資料

    • 統計成功和失敗的對象數量,與 DescribeJob 返回的 ProgressSummary 進行對比驗證

使用 ossutil 下載報告樣本:

# 下載報告資訊清單檔
ossutil cp oss://my-bucket/batch-reports/<JobId>/results/manifest.json ./

# 下載 CSV 詳細報告
ossutil cp oss://my-bucket/batch-reports/<JobId>/results/report-0.csv ./

常見錯誤碼

HTTP狀態代碼

錯誤碼

說明

解決方案

403

AccessDenied

許可權不足,無法訪問對象

檢查 IAM 角色許可權配置

404

NoSuchKey

對象不存在

確認資訊清單檔中的物件路徑正確

400

InvalidArgument

參數不合法

檢查巨集指令引數(如標籤格式、ACL類型)

409

InvalidObjectState

對象狀態不符合操作要求

確認Object Storage Service類型與操作類型匹配

注意事項

  • 報告檔案會佔用儲存空間併產生儲存費用,建議定期清理歷史報告

  • 對於大規模作業,CSV 報告檔案可能較大,下載時注意網路頻寬

  • 如果設定 ReportScopeFailedTasksOnly,報告中僅包含失敗的對象

應用於生產環境

最佳實務

作業規劃策略

  • 規模控制:將單工作物件數控制在1億以內確保執行穩定性,大規模資料拆分為多個作業降低單點風險

  • 優先順序管理:設定合理的作業優先順序避免重要作業被阻塞,預估執行時間合理安排維護視窗

  • 並行作業注意事項:多作業並行作業同一批對象時執行順序不確定,建議避免並行作業同一對象

效能最佳化措施

  • 資訊清單檔最佳化:合理組織資訊清單檔結構避免單檔案過大影響解析速度

  • QPS配額利用:充分利用獨立QPS配額的優勢不影響業務API調用,大量操作不佔用使用者的QPS配額

  • 並發控制:同時運行作業數控制在3個以內避免資源競爭

  • 熱點規避:如果操作區間存在熱點(如:字典序首碼),會影響大量操作的執行速度,嚴重時可能引起部分檔案操作失敗

錯誤處理機制

  • 詳細報告:啟用詳細報告(ReportScope=AllTasks)擷取完整執行結果用於問題定位

  • 重試機制:大量操作在執行過程中遇到問題,會在極少數情境下重試數次,最終的API請求收費次數以執行調用API情況為準

  • 失敗閾值:如果任務中超過20%的條目失敗,整個任務會直接失敗,不會繼續執行

  • 狀態確認異常:極少數情境下,部分操作實際成功,但是執行報告裡會記錄成失敗。建議您對記錄為失敗的條目進行二次檢查確認

結果確認要點

  • 執行完整性驗證:一個作業執行完後,無論作業是執行中、完成、失敗、暫停、還是取消狀態,均有可能部分Object完成指定操作,部分Object執行指定操作失敗,使用時請查詢結果的成功數、失敗數等資訊,確保執行指定操作的結果符合預期

  • 失敗處理建議

    • Complete狀態僅表示作業完成,不代表所有對象成功處理,必須查看執行報告確認詳情

    • 針對失敗任務分析失敗原因並重試,部分失敗的作業可基於失敗報告建立重試作業

    • Cancelled、Paused、Failed狀態作業可能已有部分對象處理成功需要核對

資訊清單檔注意事項

執行順序與資料一致性

  • 執行順序:大量操作按照清單列表裡的條目進行,但是不保證執行順序

  • 檔案更新:如果某個對象檔案在動作執行前被更新,作業會對更新後的檔案進行操作。不建議在批量任務執行過程中對檔案進行修改

  • 首碼方式限制:如果您使用首碼方式輸入清單,大量操作無法感知大量操作執行過程中新增或刪除的檔案。不建議在批量任務執行過程中,在首碼下新增和刪除檔案

資訊清單檔格式要求

  • URL編碼:CSV資訊清單檔中的object必須使用URL編碼,否則解析可能會失敗

  • 重複Key處理:如果資訊清單檔裡包含重複的key,大量操作會重複執行,但是不保證操作順序

資源調度機制

優先順序調度

支援0-2147483647優先順序

並發控制

單帳號最多6個並發作業,超出進入等待隊列

作業狀態轉換

重要
  • Complete 狀態只表示作業流程完成,不代表所有對象都操作成功

  • CancelledPausedFailed 狀態下可能已有部分對象處理成功

  • 務必查看執行報告中的成功數和失敗數,確認實際執行結果

狀態

說明

使用者可執行操作

New

作業已建立,進行中參數校正

Preparing

後台解析清單、參數校正、統計檔案總數

取消作業

Suspended

暫停等待使用者確認(超過14天未確認將自動失敗)

確認執行或取消作業

Ready

作業進入排隊隊列,等待資源調度

取消作業

Active

作業正在執行中,包括:
• 執行對象操作
• 產生執行報告

取消作業

Pausing

使用者資源受限,正在暫停當前作業

取消作業

Paused

作業已暫停,等待資源釋放後繼續執行

取消作業

Complete

作業執行完成(注意:不代表所有對象都成功處理)

查看報告

Cancelling

使用者已發起取消,正在清理執行中的任務

Cancelled

作業已取消

查看報告

Failing

參數錯誤或執行失敗超過20%,正在終止作業

Failed

作業執行失敗

查看報告

Cleaning

清理作業資料(使用者不可見)

Cleaned

作業資料清理完成(使用者不可見)

容錯策略

許可權驗證

  • 作業建立前驗證源路徑存取權限避免執行中斷

  • 確保IAM角色具有目標操作的完整許可權鏈

  • 定期輪換IAM角色AccessKey提升安全性

資料保護

  • 執行大量刪除或覆蓋操作前建立資料快照或備份

  • 為重要資料啟用版本控制提供多版本保護

  • 在測試環境驗證操作邏輯確認無誤後再在生產環境執行

監控警示

  • 配置作業狀態變更事件通知及時掌握執行情況

  • 監控作業執行時間發現異常長時間運行作業

  • 設定失敗率閾值警示快速響應異常情況

成本控制

計費方式

  • 採用按處理對象數量計費模式,1元/100萬對象

  • 無任務建立費用,僅按實際處理對象數量付費

  • 相比逐個對象調用API可節省90%以上操作成本

最佳化建議

  • 充分利用6個並發作業限額避免資源空閑

  • 定期刪除歷史作業報告節省儲存成本

  • 及時清理測試作業避免不必要的費用支出

配額與限制

專案

限制

單帳號並發作業數

6個

單帳號排隊作業數

通常1000個/地區

單作業最大對象數

100億個

資訊清單檔最大大小

10TB

單帳號日處理對象數

通常10億個/地區

作業歷史保留期

通常30天或1萬條

計費說明

OSS大量操作採用隨用隨付模式,按處理對象數量計費1元/100萬對象,不收取作業建立和管理費用,不產生額外資料轉送費用。

重要

對檔案進行操作會產生 OSS標準 API 費用收取。例如:打標操作,會收取 PUT類型請求費用。

計費樣本

  • 批量標籤操作500萬對象:500萬 ÷ 100萬 × 1元 = 5元

  • 大規模資料處理50億對象:50億 ÷ 100萬 × 1元 = 5,000元

費用最佳化建議:合并相關大量操作到單個作業減少管理開銷,使用精確首碼或資訊清單檔避免處理不必要對象,非緊急大量操作安排在業務低峰期執行。

常見問題

作業提交後長時間處於Preparing狀態?

可能原因包括:

  • 資訊清單檔過大,解析時間較長

  • 首碼掃描涉及對象數量過多

  • 系統負載較高,處理隊列繁忙

建議:將大作業拆分為多個小作業,或使用預產生的資訊清單檔。

部分對象處理失敗如何處理?

處理步驟:

  1. 下載作業執行報告,分析失敗原因

  2. 根據失敗對象列表建立新的重試作業

  3. 檢查許可權配置是否正確,確保IAM角色具有完整許可權

如何取消正在執行的作業?

使用以下命令:

POST /?batchJobStatus&batchJobId=<JobId>&requestedJobStatus=Cancelled&statusUpdateReason=使用者主動取消 HTTP/1.1
Host: oss-cn-hangzhou.aliyuncs.com
Authorization: <簽名資訊>

提示許可權不足錯誤?

檢查許可權配置:

  1. 確保RAM使用者具有oss:CreateBatchJob許可權

  2. 檢查IAM角色是否包含操作所需具體許可權

  3. 驗證跨桶操作時目標桶使用權限設定

IAM角色配置要求?

IAM角色必須包含:

  • OSS資源讀寫權限

  • 大量操作API調用許可權

  • 報告儲存空間寫入許可權

信任策略樣本:

{
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Effect": "Allow",
      "Principal": {
        "Service": ["oss.aliyuncs.com"]
      }
    }
  ]
}

如何提高大量操作執行速度?

最佳化建議:

  1. 合理組織資訊清單檔,避免過大單檔案

  2. 避免業務高峰期執行大型作業

  3. 分配作業優先順序,確保重要作業優先執行

  4. 單工作物件數不要過多,避免作業已耗用時間過長,建議控制在1億以內

  5. 避免將大作業拆分成過多小作業(比如:100 萬對象拆成 1000 個作業),減少任務調度消耗的時間

作業執行時間比預期長?

可能原因:

  • 對象分布不均,某些分區處理時間較長

  • 來源物件或目標對象存在熱點,影響處理速度

  • 同時運行作業過多,資源競爭激烈

建議調整作業調度策略或降低並發作業數量。