本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
对象存储OSS提供ZIP文件自动解压功能。配置解压规则,即指定文件前缀和目标目录后,您上传符合规则的ZIP文件至OSS Bucket时,系统自动完成解压操作,并将解压后的文件写入目标目录。该功能基于函数计算FC与OSS的集成,其本质是在FC侧创建的OSS原生触发器,无需编写代码,即可实现上述事件驱动流程。
实现原理
ZIP包解压结合函数计算完成ZIP文件的解压工作,解压流程如下图所示。
匹配解压规则后缀的ZIP文件上传到满足OSS解压规则前缀的目录。
自动触发函数计算。
函数计算解压ZIP文件,并将解压后的文件存储至OSS的指定目录中。
应用场景
批量上传
当您有大量小文件需要上传时,使用程序上传耗时较多,此时可以使用ZIP包解压功能,将文件打包上传。
上传完整的文件
出于资源完整性考虑,有时需要将多个文件组合成一个资源,而将多个文件分别上传可能成功率不高,此时可以使用ZIP包解压功能,提升上传成功率。
按特定目录结构上传
网站中引用了很多静态资源,资源的目录结构比较复杂,如果在OSS中逐一新建目录上传文件的话耗时很长。此时可以在本地定义ZIP包中目录结构,压缩后上传到OSS,使用ZIP包解压功能解压使用。
资源分发
在需要将大量文件分发给用户或不同服务器时,可以将这些文件打包成ZIP包,并使用OSS ZIP包解压功能将ZIP包解压到指定目录。这样可以减少传输时间和带宽消耗。
费用说明
使用ZIP包解压功能,涉及OSS存储费用以及FC函数调用和资源使用费用,详细如下。
OSS费用
FC费用
涉及函数调用次数费用和调用函数产生的vCPU、内存和磁盘资源使用费用。以上计量项需按照转换系数转换为CU使用量进行计费,详情请参见CU转换系数。
Bucket内网域名传输数据免流量费用。
使用限制
存储类型限制
冷归档或者深度冷归档存储类型的文件需先解冻再解压;归档存储类型的文件,如果所在Bucket未开启归档直读,需先解冻再解压。
文件或文件夹命名限制
建议使用UTF-8或GB 2312编码命名您的文件或文件夹,否则可能会出现解压后的文件或文件夹名称出现乱码、解压过程中断等问题。
压缩包限制
ZIP压缩包大小不超过10 GB,且单个文件的大小不超过10 GB,解压单个压缩包默认的最大时间是2小时,超过2小时可以调整函数最大执行时长,详情请参见解压超大文件解压超过2h任务失败。
配置ZIP包解压触发器
登录对象存储 OSS控制台,在左侧导航栏,单击Bucket列表。
在Bucket列表页面,单击目标Bucket名称。
在目标Bucket页面的左侧导航栏,选择
,然后单击ZIP包解压,在ZIP包解压面板配置ZIP包解压规则。参数
说明
本文示例
服务授权
创建函数计算服务关联角色用户函数计算访问其他云服务。如果您之前未登录过函数计算控制台,则需要单击授权按钮,完成服务关联角色AliyunServiceRoleForFC的创建。
不涉及
函数授权
授予函数计算读写OSS的权限。
单击授权按钮,然后按照提示完成授权。
不涉及
触发器授权
授予OSS访问函数计算的权限。
单击授权按钮,然后按照提示完成授权。如果已完成授权,此项显示为触发器角色。
不涉及
前缀
配置触发函数的文件前缀。您上传指定前缀的ZIP文件或将ZIP文件上传至指定目录会触发函数计算。置空此项则匹配所有上传的ZIP文件。
重要置空此项可能会触发循环执行,建议您配置文件前缀。更多信息,请参见如何避免循环触发?。
zipfolder/
目标目录
填写ZIP文件解压后存放的目录。置空此项,函数计算会将ZIP文件解压到当前Bucket的根目录。配置不同目标目录,解压后的文件结构见本文配置示例。
警告为避免影响OSS-HDFS服务的正常使用或者引发数据污染、数据丢失的风险,在开通了OSS-HDFS服务的Bucket中配置ZIP包解压规则时,禁止将目标目录填写为
.dlsdata/
。目标目录为
destfolder
,选中直接解压到目标目录中。bucket ├─── zipfolder/ │ ├─── a.zip │ └─── b.zip └─── destfolder/ ├─── a.txt ├─── b.txt └─── ...
目标目录为空,选中保留压缩文件名为路径目录。
bucket/ ├── zipfolder/ │ ├── a.zip │ └── b.zip ├── a/ │ ├── a.txt │ └── ... └── b/ ├── b.txt └── ...
目标目录为
destfolder
,选中保留压缩文件名为路径目录。bucket/ ├── zipfolder/ │ ├── a.zip │ └── b.zip └── destfolder/ ├── a/ │ ├── a.txt │ └── ... └── b/ ├── b.txt └── ...
选中我已知晓并同意开通函数计算,通过函数计算处理压缩文件。压缩文件里面的文件名或文件夹名不支持非UTF-8或GB 2312编码后,单击确定。
配置完成后,支持修改触发器的文件前缀和关联的FC函数配置,具体操作,请参见配置原生OSS触发器和配置函数。
相关文档
如果您需要实现自动解压更多压缩类型文件,例如
.tar
或.gz
等,请参见decompress-oss。如果您需要使用函数计算实现打包下载OSS文件,请参见使用函数计算实现打包下载OSS文件。