diff --git a/publish.yaml b/publish.yaml
index ae08229..92d3f3c 100644
--- a/publish.yaml
+++ b/publish.yaml
@@ -1,6 +1,6 @@
Type: Application
Name: start-unzip-oss
-Version: 0.0.13
+Version: 0.0.14
Provider:
- 阿里云
Description: 使用函数计算自动解压上传到OSS指定前缀目录的zip文件
@@ -91,7 +91,7 @@ Parameters:
title: 前缀
type: string
default: src
- description: 建议设置精准的前缀,同一个 Bucket 下的不同触发器条件不能重叠包含
+ description: 配置触发函数计算的文件前缀。您上传指定前缀的ZIP文件或将ZIP文件上传至指定目录会触发函数计算。置空此项则匹配所有上传的ZIP文件,置空此项可能会触发循环执行,建议您配置文件前缀。
processedDir:
title: 解压目标目录
type: string
diff --git a/readme.md b/readme.md
deleted file mode 100644
index 8f7eee6..0000000
--- a/readme.md
+++ /dev/null
@@ -1,92 +0,0 @@
-# start-unzip-oss 帮助文档
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-> ***快速部署自动解压上传到OSS指定前缀目录的zip文件的应用到阿里云函数计算***
-
-
-
-
-
-
-
-
-
-
-
-## 部署 & 体验
-
-
-
-- :fire: 通过 [Serverless 应用中心](https://fcnext.console.aliyun.com/applications/create?template=start-unzip-oss) ,
-[![Deploy with Severless Devs](https://img.alicdn.com/imgextra/i1/O1CN01w5RFbX1v45s8TIXPz_!!6000000006118-55-tps-95-28.svg)](https://fcnext.console.aliyun.com/applications/create?template=start-unzip-oss) 该应用。
-
-
-
-- 通过 [Serverless Devs Cli](https://www.serverless-devs.com/serverless-devs/install) 进行部署:
- - [安装 Serverless Devs Cli 开发者工具](https://www.serverless-devs.com/serverless-devs/install) ,并进行[授权信息配置](https://www.serverless-devs.com/fc/config) ;
- - 初始化项目:`s init start-unzip-oss -d start-unzip-oss`
- - 进入项目,并进行项目部署:`cd start-unzip-oss && s deploy -y`
-
-
-
-
-
-# 应用详情
-
-![](https://img.alicdn.com/imgextra/i1/O1CN01V092Oa1p04ieFtASz_!!6000000005297-2-tps-1220-320.png)
-
-通过给函数创建 OSS 触发器, 用户只需要给对应的 OSS 指定前缀目录上传 zip 文件, 就会自动触发解压函数执行, 解压函数会把解压后的文件和文件夹转存回 OSS
-
-**方案优越性**
-使用流式解压方案, 不管多大的 zip 包都可以解压, 不使用临时磁盘空间, 默认设置的函数最大执行时长为 2h, 能满足绝大部分场景。
-
-通过 Serverless Devs 开发者工具,您只需要几步,就可以体验 Serverless 架构,带来的降本提效的技术红利。
-
-## 声明
-
-这个应用函数针解压对文件和文件夹命名编码是如下格式:
-1. mac/linux 系统, 默认是utf-8
-2. windows 系统, 默认是gb2312(或者gb18030), 也可以是utf-8
-
-对于其他编码,我们这里尝试使用chardet这个库进行编码判断, 但是这个并不能保证100% 正确,建议用户先调试函数,如果有必要改写这个函数,并保证调试通过
-## Tips:
-上面的示例, 解压保存回去的都还是本身触发函数的 OSS, 如果是保存到其他 OSS, 直接将 `bucket.put_object(newKey + name, file_obj)` 这样上传回 oss 的代码修改下即可, 比如:
-
-```python
-auth = oss2.Auth('', '')
-dst_bucket_name = "xxx-bucket"
-dst_bucket = oss2.Bucket(auth, endpoint, dst_bucket_name)
-dst_bucket.put_object(newKey + name, file_obj)
-```
-
-
-
-
-
-## 开发者社区
-
-您如果有关于错误的反馈或者未来的期待,您可以在 [Serverless Devs repo Issues](https://github.com/serverless-devs/serverless-devs/issues) 中进行反馈和交流。如果您想要加入我们的讨论组或者了解 FC 组件的最新动态,您可以通过以下渠道进行:
-
-
-
-| | | |
-|--- | --- | --- |
-|
微信公众号:\`serverless\` | 微信小助手:\`xiaojiangwh\` | 钉钉交流群:\`33947367\` |
-
-
-
-
\ No newline at end of file
diff --git a/readme.md b/readme.md
new file mode 120000
index 0000000..1105835
--- /dev/null
+++ b/readme.md
@@ -0,0 +1 @@
+src/readme.md
\ No newline at end of file
diff --git a/src/readme.md b/src/readme.md
index 8f7eee6..7ff5704 100644
--- a/src/readme.md
+++ b/src/readme.md
@@ -1,5 +1,7 @@
-# start-unzip-oss 帮助文档
+> 注:当前项目为 Serverless Devs 应用,由于应用中会存在需要初始化才可运行的变量(例如应用部署地区、服务名、函数名等等),所以**不推荐**直接 Clone 本仓库到本地进行部署或直接复制 s.yaml 使用,**强烈推荐**通过 `s init ` 的方法或应用中心进行初始化,详情可参考[部署 & 体验](#部署--体验) 。
+
+# start-unzip-oss 帮助文档
@@ -14,56 +16,118 @@
-> ***快速部署自动解压上传到OSS指定前缀目录的zip文件的应用到阿里云函数计算***
+使用函数计算自动解压上传到OSS指定前缀目录的zip文件
-
+
-
+- [:smiley_cat: 代码](https://github.com/devsapp/start-unzip-oss/tree/main/src)
-
+
+
-
+
+
+
+
+
+## 前期准备
+
+使用该项目,您需要有开通以下服务:
+
+
+
+
+
+| 服务 | 备注 |
+| --- | --- |
+| 函数计算 FC | unzip解压函数部署在函数计算 |
+| 对象存储 OSS | 待解压的zip文件和解压后的文件存放在对象存储 |
+
+
+
+推荐您拥有以下的产品权限 / 策略:
+
+
+
+
+| 服务/业务 | 权限 | 备注 |
+| --- | --- | --- |
+| 函数计算 | AliyunFCFullAccess | 创建和更新 unzip 解压函数 |
+| OSS | AliyunOSSFullAccess | 创建或更新 unzip 解压函数的 OSS 触发器 |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
## 部署 & 体验
-
+
- :fire: 通过 [Serverless 应用中心](https://fcnext.console.aliyun.com/applications/create?template=start-unzip-oss) ,
-[![Deploy with Severless Devs](https://img.alicdn.com/imgextra/i1/O1CN01w5RFbX1v45s8TIXPz_!!6000000006118-55-tps-95-28.svg)](https://fcnext.console.aliyun.com/applications/create?template=start-unzip-oss) 该应用。
-
+ [![Deploy with Severless Devs](https://img.alicdn.com/imgextra/i1/O1CN01w5RFbX1v45s8TIXPz_!!6000000006118-55-tps-95-28.svg)](https://fcnext.console.aliyun.com/applications/create?template=start-unzip-oss) 该应用。
+
-
+
+
- 通过 [Serverless Devs Cli](https://www.serverless-devs.com/serverless-devs/install) 进行部署:
- - [安装 Serverless Devs Cli 开发者工具](https://www.serverless-devs.com/serverless-devs/install) ,并进行[授权信息配置](https://www.serverless-devs.com/fc/config) ;
- - 初始化项目:`s init start-unzip-oss -d start-unzip-oss`
- - 进入项目,并进行项目部署:`cd start-unzip-oss && s deploy -y`
-
+ - [安装 Serverless Devs Cli 开发者工具](https://www.serverless-devs.com/serverless-devs/install) ,并进行[授权信息配置](https://docs.serverless-devs.com/fc/config) ;
+ - 初始化项目:`s init start-unzip-oss -d start-unzip-oss `
+ - 进入项目,并进行项目部署:`cd start-unzip-oss && s deploy - y`
+
+## 应用详情
+
-# 应用详情
+![](http://image.editor.devsapp.cn/alibaba/4A5uks4sawFd26h9ksuc.png)
+
+匹配解压规则的ZIP文件在上传到OSS后,会自动触发函数计算进行解压。文件解压完成后,会存储至OSS的指定目录中。
+
+
+## 注意事项
+
+- 建议使用UTF-8或GB 2312编码命名您的文件或文件夹,否则可能会出现解压后的文件或文件夹名称出现乱码、解压过程中断等问题。
+
+- 归档或冷归档类型的文件需先解冻再解压。
+
+- 解压单个压缩包的最大时间是2小时,超过2小时未完成的任务会解压失败。
+
+- 建议ZIP包里面的单文件大小最好不超过1 GB,否则可能解压失败。如果出现这个场景, 请参考:[unzip-oss-with-nas](https://github.com/zhaohang88/unzip-oss-nas)
-![](https://img.alicdn.com/imgextra/i1/O1CN01V092Oa1p04ieFtASz_!!6000000005297-2-tps-1220-320.png)
+- 默认设置的函数执行时长为2h, 如果不满足需求, 自己直接调整函数的 timeout, 最大可到 24h
-通过给函数创建 OSS 触发器, 用户只需要给对应的 OSS 指定前缀目录上传 zip 文件, 就会自动触发解压函数执行, 解压函数会把解压后的文件和文件夹转存回 OSS
-**方案优越性**
-使用流式解压方案, 不管多大的 zip 包都可以解压, 不使用临时磁盘空间, 默认设置的函数最大执行时长为 2h, 能满足绝大部分场景。
+
+
+## 使用文档
+
+
+
+
+## 参数说明
+
+
+![](http://image.editor.devsapp.cn/alibaba/kD1lbEw48Er4s27212ri.png)
-通过 Serverless Devs 开发者工具,您只需要几步,就可以体验 Serverless 架构,带来的降本提效的技术红利。
-## 声明
+## 配置示例
+![](http://image.editor.devsapp.cn/alibaba/lASAfezjvifa9Cwawht6.png)
-这个应用函数针解压对文件和文件夹命名编码是如下格式:
-1. mac/linux 系统, 默认是utf-8
-2. windows 系统, 默认是gb2312(或者gb18030), 也可以是utf-8
-对于其他编码,我们这里尝试使用chardet这个库进行编码判断, 但是这个并不能保证100% 正确,建议用户先调试函数,如果有必要改写这个函数,并保证调试通过
-## Tips:
+## 二次开发示例
上面的示例, 解压保存回去的都还是本身触发函数的 OSS, 如果是保存到其他 OSS, 直接将 `bucket.put_object(newKey + name, file_obj)` 这样上传回 oss 的代码修改下即可, 比如:
```python
@@ -71,22 +135,23 @@ auth = oss2.Auth('', '')
dst_bucket_name = "xxx-bucket"
dst_bucket = oss2.Bucket(auth, endpoint, dst_bucket_name)
dst_bucket.put_object(newKey + name, file_obj)
+
```
-
+
+
+
## 开发者社区
您如果有关于错误的反馈或者未来的期待,您可以在 [Serverless Devs repo Issues](https://github.com/serverless-devs/serverless-devs/issues) 中进行反馈和交流。如果您想要加入我们的讨论组或者了解 FC 组件的最新动态,您可以通过以下渠道进行:
-
+
| | | |
-|--- | --- | --- |
-|
微信公众号:\`serverless\` | 微信小助手:\`xiaojiangwh\` | 钉钉交流群:\`33947367\` |
-
+| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
+| 微信公众号:`serverless` | 微信小助手:`xiaojiangwh` | 钉钉交流群:`33947367` |
-
-
\ No newline at end of file
+