當您需要自動解壓縮上傳到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小時,您可以調整函數的執行逾時時間來滿足業務需求。
前提條件
已開通Function Compute服務。具體操作,請參見開通Function Compute服務。
已開通Object Storage Service服務並建立儲存空間。具體操作,請參見建立儲存空間。
操作步驟
- 登入Function Compute控制台,在左側導覽列,單擊應用。
在應用頁面,單擊建立應用,然後在建立應用頁面,選擇建立應用的方式。
本文以通過模板建立應用方式為例進行介紹。
在建立應用頁面下方的模板地區,找到OSS上傳zip檔案自動解壓,游標放到該卡片,然後單擊立即建立。
在建立應用頁面,設定以下配置項,然後單擊建立並部署預設環境。
主要配置項說明如下,其餘配置項選擇預設值即可。
配置項
說明
基礎配置
部署類型
選擇直接部署。
角色名稱
預設為角色AliyunFCServerlessDevsRole。如果現有許可權不足,單擊+添加策略,在彈出的對話方塊選擇要添加的策略,然後單擊添加。
進階配置
RAM角色ARN
選擇OSS觸發函數時所用的角色。請確保已為該角色配置AliyunOSSFullAccess和AliyunFCDefaultRolePolicy權限原則。
OSS儲存桶名
選擇已建立的Bucket。
首碼
設定檔案首碼。預設為src。
重要請確保同一Bucket下的不同觸發器設定的檔案首碼不要重複,否則會導致應用建立失敗。
解壓目標目錄
設定檔案解壓後的目標儲存目錄。預設為dst。
說明為了防止迴圈觸發函數,請將此目錄設定為不同於首碼的目標目錄。
是否保留壓縮檔名為路徑目錄
設定是否保留壓縮檔名為路徑的目錄。取值說明如下:
true:保留壓縮檔名為路徑目錄。例如,設定的解壓目標目錄為target,壓縮檔名為source.zip,解壓後檔案路徑為target/source/...。
false:直接解壓到目標目錄中。上述樣本中,解壓後檔案路徑為target/...。
觸發器RAM角色ARN
預設為角色AliyunOSSEventNotificationRole,OSS使用此角色發送事件通知調用函數。
測試應用。
登入Object Storage Service控制台,單擊您上一步建立應用時選擇的Bucket。
在目標Bucket,上傳.zip檔案至與您設定的首碼匹配的目錄時,將觸發應用所屬函數執行,自動解壓.zip檔案並儲存至您設定的解壓目標目錄。
例如,您設定的首碼為source,解壓目標目錄為target。將.zip檔案上傳至source或source1時,均觸發函數執行,並自動解壓儲存檔案至target。
相關文檔
本文介紹的通過Function Compute的應用中心一鍵部署檔案解壓縮應用只支援ZIP檔案的解壓縮,如您需要其他解壓縮其他格式,請參見decompress-oss。
如果您僅需要解壓上傳到OSS的ZIP檔案,可以直接在OSS配置ZIP檔案自動解壓,具體請參見上傳ZIP包並自動解壓。
如果您需要使用Function Compute實現打包下載OSS的檔案,請參見將多個檔案打包成ZIP包下載。