全部產品
Search
文件中心

Function Compute:使用Function Compute實現OSS壓縮檔的自動解壓

更新時間:Oct 31, 2025

當您需要自動解壓縮上傳到OSS的壓縮檔時,可以通過Function Compute的應用中心一鍵部署應用來實現。當匹配解壓規則的ZIP檔案上傳到Object Storage Service後,自動觸發Function Compute進行解壓。檔案解壓完成後,Function Compute會將解壓後的檔案上傳至Object Storage Service的指定目錄中。

背景資訊

流程圖如下。

注意事項

  • 建議使用UTF-8或GB 2312編碼命名您的檔案或檔案夾,否則可能導致解壓後的檔案或檔案夾名稱出現亂碼、解壓過程中斷等問題。

  • 向Bucket上傳壓縮檔時,請不要選擇Archive Storage或冷Archive Storage類型,否則無法正常觸發函數執行。

  • 向Bucket上傳的壓縮檔中,單個檔案大小不要超過1 GB,否則可能導致解壓失敗。

  • 解壓單個壓縮包的最大時間為2小時,超過2小時未完成的任務會解壓失敗。

  • 預設設定的函數執行時間長度為2小時,您可以調整函數的執行逾時時間來滿足業務需求。

前提條件

操作步驟

  1. 登入Function Compute控制台,在左側導覽列,單擊應用
  2. 應用頁面,單擊建立應用,然後在建立應用頁面,選擇建立應用的方式。

    本文以通過模板建立應用方式為例進行介紹。

  3. 建立應用頁面下方的模板地區,找到OSS上傳zip檔案自動解壓,游標放到該卡片,然後單擊立即建立

  4. 建立應用頁面,設定以下配置項,然後單擊建立並部署預設環境

    主要配置項說明如下,其餘配置項選擇預設值即可。

    配置項

    說明

    基礎配置

    部署類型

    選擇直接部署

    角色名稱

    預設為角色AliyunFCServerlessDevsRole。如果現有許可權不足,單擊+添加策略,在彈出的對話方塊選擇要添加的策略,然後單擊添加

    進階配置

    RAM角色ARN

    選擇OSS觸發函數時所用的角色。請確保已為該角色配置AliyunOSSFullAccessAliyunFCDefaultRolePolicy權限原則。

    OSS儲存桶名

    選擇已建立的Bucket。

    首碼

    設定檔案首碼。預設為src

    重要

    請確保同一Bucket下的不同觸發器設定的檔案首碼不要重複,否則會導致應用建立失敗。

    解壓目標目錄

    設定檔案解壓後的目標儲存目錄。預設為dst

    說明

    為了防止迴圈觸發函數,請將此目錄設定為不同於首碼的目標目錄。

    是否保留壓縮檔名為路徑目錄

    設定是否保留壓縮檔名為路徑的目錄。取值說明如下:

    • true:保留壓縮檔名為路徑目錄。例如,設定的解壓目標目錄target,壓縮檔名為source.zip,解壓後檔案路徑為target/source/...

    • false:直接解壓到目標目錄中。上述樣本中,解壓後檔案路徑為target/...

    觸發器RAM角色ARN

    預設為角色AliyunOSSEventNotificationRole,OSS使用此角色發送事件通知調用函數。

  5. 測試應用。

    1. 登入Object Storage Service控制台,單擊您上一步建立應用時選擇的Bucket。

    2. 在目標Bucket,上傳.zip檔案至與您設定的首碼匹配的目錄時,將觸發應用所屬函數執行,自動解壓.zip檔案並儲存至您設定的解壓目標目錄

      例如,您設定的首碼source解壓目標目錄target。將.zip檔案上傳至sourcesource1時,均觸發函數執行,並自動解壓儲存檔案至target

相關文檔

  • 本文介紹的通過Function Compute的應用中心一鍵部署檔案解壓縮應用只支援ZIP檔案的解壓縮,如您需要其他解壓縮其他格式,請參見decompress-oss

  • 如果您僅需要解壓上傳到OSS的ZIP檔案,可以直接在OSS配置ZIP檔案自動解壓,具體請參見上傳ZIP包並自動解壓

  • 如果您需要使用Function Compute實現打包下載OSS的檔案,請參見將多個檔案打包成ZIP包下載