ZIP包解压

更新时间: 2023-11-21 15:33:30

对象存储OSS提供ZIP文件自动解压功能。配置解压规则后,您上传到OSS指定路径的ZIP文件都会被自动解压。

前提条件

  • 已开通函数计算服务。您可以在函数计算的产品详情页面开通函数计算服务。

  • 华东1(杭州)、华东2(上海)、华北1(青岛)、华北2(北京)、华北 3(张家口)、华北5(呼和浩特)、华南1(深圳)、西南1(成都)、中国香港、新加坡、澳大利亚(悉尼)、马来西亚(吉隆坡)、印度尼西亚(雅加达)、日本(东京)、德国(法兰克福)、英国(伦敦)、美国(弗吉尼亚)、美国(硅谷)、印度(孟买)地域的存储空间支持ZIP包解压。

    无地域属性的存储空间不支持ZIP包解压。

背景信息

ZIP包解压结合函数计算完成ZIP文件的解压工作,解压流程如下图所示。

image

匹配解压规则的ZIP文件在上传到OSS后,会自动触发函数计算进行解压。文件解压完成后,会存储至OSS的指定目录中。

注意事项

  • 建议使用UTF-8或GB 2312编码命名您的文件或文件夹,否则可能会出现解压后的文件或文件夹名称出现乱码、解压过程中断等问题。

  • 冷归档或者深度冷归档存储类型的文件需先解冻再解压。

  • 归档存储类型的文件,如果所在Bucket未开启归档直读,需先解冻再解压。

  • 解压单个压缩包的最大时间是2小时,超过2小时未完成的任务会解压失败。

  • ZIP压缩包的大小不能过大,否则解压函数可能在执行超过2小时的情况下超时,从而导致解压失败。如果ZIP压缩包过大,您可以结合函数工作流,进行分批次解压。详情请参见oss-unzip

  • ZIP压缩包中单个文件的大小不超过1 GB,否则可能导致解压失败。

  • ZIP包解压功能是增值服务,函数计算会根据解压执行时间计算费用。更多信息,请参见计费方式

配置ZIP包解压规则

  1. 登录OSS管理控制台

  2. 单击Bucket 列表,然后单击目标Bucket名称。

  3. 在左侧导航栏,选择数据处理 > ZIP 包解压

  4. 单击ZIP 包解压,在ZIP 包解压面板配置ZIP包解压规则。

    参数说明

    参数

    是否必选

    说明

    服务授权

    授予函数计算读写OSS和执行函数的权限。

    单击授权按钮,然后按照提示完成授权。

    触发器授权

    授予OSS访问函数计算的权限。

    单击授权按钮,然后按照提示完成授权。如果已完成授权,此项显示为触发器角色

    前缀

    配置触发函数计算的文件前缀。您上传指定前缀的ZIP文件或将ZIP文件上传至指定目录会触发函数计算。置空此项则匹配所有上传的ZIP文件。

    重要

    置空此项可能会触发循环执行,建议您配置文件前缀。更多信息,请参见如何避免循环触发?

    目标目录

    填写ZIP文件解压后存放的目录。置空此项,函数计算会将ZIP文件解压到当前Bucket的根目录。

    • 如果您需要在目标目录中保留ZIP文件名,则选中保留压缩文件名为路径目录

    • 如果您不需要保留ZIP文件名,直接将解压后的文件存放在目标目录,则选中直接解压到目标目录中。配置详情请参见以下配置示例。

    警告

    为避免影响OSS-HDFS服务的正常使用或者引发数据污染、数据丢失的风险,在开通了OSS-HDFS服务的Bucket中配置ZIP包解压规则时,禁止将目标目录填写为.dlsdata/

    配置示例

    场景

    配置方法

    解压后的文件结构

    所有上传至zipfolder目录的ZIP包均解压到destfolder目录,不保留ZIP包名称。

    • 前缀设置为zipfolder/

    • 目标目录设置为destfolder

    • 选中直接解压到目标目录中

    bucket  
    ├─── zipfolder/   
    │    ├─── a.zip
    │    └─── b.zip
    └─── destfolder/
         ├─── a.txt
         ├─── b.txt
         └─── ...

    所有上传至zipfolder目录的ZIP包均解压到根目录,保留ZIP包名称。

    您需要配置如下参数:

    • 前缀设置为zipfolder/

    • 目标目录设置为空。

    • 选中保留压缩文件名为路径目录

    bucket  
    ├─── zipfolder/   
    │    ├─── a.zip
    │    └─── b.zip
    ├─── a/
    │    ├─── a.txt
    │    └─── ...
    └─── b/
         ├─── b.txt
         └─── ...

    所有上传至zipfolder目录的ZIP包均解压到destfolder目录,保留ZIP包名称。

    您需要配置如下参数:

    • 前缀设置为zipfolder/

    • 目标目录设置为destfolder

    • 选中保留压缩文件名为路径目录

    bucket  
    ├─── zipfolder/   
    │    ├─── a.zip
    │    └─── b.zip
    └─── destfolder/
         ├─── a/
         │    ├─── a.txt
         │    └─── ...
         └─── b/
              ├─── b.txt
              └─── ...
  5. 选中我已知晓并同意开通函数计算,通过函数计算处理压缩文件。压缩文件里面的文件名或文件夹名不支持非UTF-8或GB 2312编码后,单击确定

修改ZIP包解压配置

您可以根据自己的需求修改ZIP包解压的配置。

修改触发函数计算的文件前缀

  1. 在OSS控制台的ZIP 包解压页面,单击目标触发器右侧的编辑

  2. 在弹出的函数详情页面下的触发器管理页签,单击目标触发器右侧的编辑

  3. 编辑触发器对话框,修改文件前缀,其他参数保持默认配置。

  4. 单击确定

修改函数计算配置

  1. 在函数详情页面下的函数配置页签,单击目标触发器右侧的编辑

  2. 根据实际需求,修改函数计算相关配置,例如函数执行内存、执行超时时间等。

    具体操作,请参见管理函数

删除ZIP包解压规则

对于不需要的ZIP包解压规则,您可以手动删除。

  1. 在函数详情页面下的函数配置页签,单击目标触发器右侧的删除

  2. 在弹出的对话框,单击删除

    重要

    删除后无法恢复,且不能继续使用当前触发器触发函数。

阿里云首页 对象存储 OSS 相关技术圈