全部產品
Search
文件中心

Function Compute:OSS 觸發器概述

更新時間:Jul 10, 2026

OSS 與Function Compute整合後,OSS 事件能觸發相關函數執行,實現對 OSS 中的資料的自訂處理。本文介紹Function Compute支援的 OSS 觸發器的使用限制、事件類型及觸發規則。

背景資訊

OSS 和Function Compute通過 OSS 觸發器實現無縫整合,可以編寫函數對 OSS 事件進行自訂處理。當 OSS 捕獲到指定類型的事件後,會自動觸發關聯的函數執行。例如,設定函數處理檔案上傳事件,當通過PutObject介面上傳圖片到 OSS 後,關聯的函數會自動執行來處理該圖片。

OSS 和Function Compute整合後,可以調用函數處理映像或音頻資料,再將結果寫入儲存服務。只需關注函數邏輯的編寫,系統會以可靠、大規模並行的方式處理資料。

OSS 觸發器使用限制

OSS 事件定義

當 OSS 系統捕獲到相關事件後,會將事件資訊編碼為 JSON 字串,傳遞給事件處理函數。OSS 事件通知格式的詳細資料,請參見訊息通知

已支援的 OSS 事件定義如下表所示。一種事件類型對應一個 ObjectCreated、ObjectRemoved 或 ObjectModified 類型的 API,調用該 API 並執行成功後會觸發函數執行一次。

事件類型

事件名稱

說明

ObjectCreated

oss:ObjectCreated:PutObject

調用PutObject介面上傳檔案。更多資訊,請參見PutObject

oss:ObjectCreated:PutSymlink

調用PutSymlink介面針對 OSS 上的 TargetObject 建立軟連結,可以通過該軟連結訪問 TargetObject。更多資訊,請參見PutSymlink

oss:ObjectCreated:PostObject

調用PostObject介面使用 HTML 表單上傳檔案到指定的 Bucket。更多資訊,請參見PostObject

oss:ObjectCreated:CopyObject

調用CopyObject介面拷貝一個在 OSS 上已經存在的對象。更多資訊,請參見CopyObject

oss:ObjectCreated:InitiateMultipartUpload

使用MultipartUpload模式傳輸資料前,必須先調用InitiateMultipartUpload介面來通知 OSS 初始化一個 MultipartUpload 事件。更多資訊,請參見InitiateMultipartUpload

oss:ObjectCreated:UploadPart

初始化一個 MultipartUpload 事件之後,可以根據指定的對象名和 Upload ID 來分塊(Part)上傳資料。更多資訊,請參見UploadPart

oss:ObjectCreated:UploadPartCopy

UploadPartCopy通過從已存在的 Object 中拷貝資料來上傳一個 Part。更多資訊,請參見UploadPartCopy

oss:ObjectCreated:CompleteMultipartUpload

將所有資料 Part 上傳完成後,需調用CompleteMultipartUpload介面來完成整個檔案的 MultipartUpload。更多資訊,請參見CompleteMultipartUpload

oss:ObjectCreated:AppendObject

調用AppendObject介面以追加寫的方式上傳檔案。更多資訊,請參見AppendObject

oss:ObjectCreated:*

調用任何上述 ObjectCreated 類型的 API 執行成功後都會觸發函數。

ObjectRemoved

oss:ObjectRemoved:DeleteObject

調用DeleteObject介面刪除某個對象。更多資訊,請參見DeleteObject

oss:ObjectRemoved:DeleteObjects

調用DeleteMultipleObjects介面大量刪除檔案。更多資訊,請參見DeleteMultipleObjects

oss:ObjectRemoved:AbortMultipartUpload

調用AbortMultipartUpload介面可以根據使用者提供的 Upload ID 終止其對應的 MultipartUpload 事件。更多資訊,請參見AbortMultipartUpload

ObjectModified

oss:ObjectModified:UpdateObjectMeta

調用UpdateObjectMeta介面修改某個對象的屬性。

說明

目前,支援該事件的地區包括:華東 1(杭州)、華東 2(上海)、華北 1(青島)、華北 2(北京)、華北 3(張家口)、華北 5(呼和浩特)、華南 1(深圳)和西南 1(成都)。

ObjectReplication

oss:ObjectReplication:ObjectCreated

資料複製過程涉及的寫入操作。

oss:ObjectReplication:ObjectModified

資料複製過程涉及的覆蓋操作。

oss:ObjectReplication:ObjectRemoved

資料複製過程涉及的刪除操作。

OSS 觸發器觸發規則

避免迴圈觸發

警告

使用 OSS 觸發器時,請注意避免迴圈觸發。例如,OSS 的某個 Bucket 上傳檔案事件觸發函數執行,函數執行後產生了一個或多個檔案再寫回到 OSS 的 Bucket,這個寫入動作又觸發了函數執行,形成鏈狀迴圈。

為了避免迴圈觸發函數產生不必要的費用,建議設定檔首碼或檔案尾碼進行隔離。例如,將觸發函數的檔案首碼設定為src,函數執行完成後組建檔案的檔案首碼設定為dst,這樣產生的檔案不會再次觸發函數。如果不設定檔首碼和檔案尾碼,則表示匹配任意檔案。具體操作,請參見步驟一:建立OSS觸發器

原生 OSS 觸發器配置規則

為避免在同一個 Bucket 下建立重複的觸發器導致單個事件同時觸發多個觸發器,系統在建立觸發器時會進行配置衝突檢測。如果建立觸發器的觸發事件、檔案首碼和檔案尾碼的組合與已有觸發器存在重疊,則建立失敗。

配置觸發器時,請遵循以下原則:

  • 同一 Bucket 下,每個觸發器的"觸發事件 + 檔案首碼 + 檔案尾碼"組合應保持唯一。

  • 檔案首碼和檔案尾碼使用通配匹配方式,未配置首碼或尾碼時表示匹配任意值。

說明

設定檔首碼和檔案尾碼時,建議合理劃分檔案命名空間,避免因匹配範圍重疊導致觸發器建立失敗。

如果一個 OSS 事件類型可以觸發不同的函數進行不同的處理,即為不同的函數配置相同的觸發條件,可以建立 EventBridge 類別的 OSS 觸發器

常見問題

相關文檔