Skip to content

Commit

Permalink
Merge pull request #6 from devsapp/fix-readme
Browse files Browse the repository at this point in the history
fix readme
  • Loading branch information
rsonghuster authored Feb 7, 2023
2 parents 8926a12 + 36080c3 commit c5ef320
Show file tree
Hide file tree
Showing 3 changed files with 102 additions and 128 deletions.
4 changes: 2 additions & 2 deletions publish.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Type: Application
Name: start-unzip-oss
Version: 0.0.13
Version: 0.0.14
Provider:
- 阿里云
Description: 使用函数计算自动解压上传到OSS指定前缀目录的zip文件
Expand Down Expand Up @@ -91,7 +91,7 @@ Parameters:
title: 前缀
type: string
default: src
description: 建议设置精准的前缀,同一个 Bucket 下的不同触发器条件不能重叠包含
description: 配置触发函数计算的文件前缀。您上传指定前缀的ZIP文件或将ZIP文件上传至指定目录会触发函数计算。置空此项则匹配所有上传的ZIP文件,置空此项可能会触发循环执行,建议您配置文件前缀。
processedDir:
title: 解压目标目录
type: string
Expand Down
92 changes: 0 additions & 92 deletions readme.md

This file was deleted.

1 change: 1 addition & 0 deletions readme.md
133 changes: 99 additions & 34 deletions src/readme.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# start-unzip-oss 帮助文档

> 注:当前项目为 Serverless Devs 应用,由于应用中会存在需要初始化才可运行的变量(例如应用部署地区、服务名、函数名等等),所以**不推荐**直接 Clone 本仓库到本地进行部署或直接复制 s.yaml 使用,**强烈推荐**通过 `s init ` 的方法或应用中心进行初始化,详情可参考[部署 & 体验](#部署--体验)
# start-unzip-oss 帮助文档
<p align="center" class="flex justify-center">
<a href="https://www.serverless-devs.com" class="ml-1">
<img src="http://editor.devsapp.cn/icon?package=start-unzip-oss&type=packageType">
Expand All @@ -14,79 +16,142 @@

<description>

> ***快速部署自动解压上传到OSS指定前缀目录的zip文件的应用到阿里云函数计算***
使用函数计算自动解压上传到OSS指定前缀目录的zip文件

</description>

<table>
</table>
<codeUrl>

<codepre id="codepre">
- [:smiley_cat: 代码](https://github.com/devsapp/start-unzip-oss/tree/main/src)

</codepre>
</codeUrl>
<preview>

<deploy>


</preview>


## 前期准备

使用该项目,您需要有开通以下服务:

<service>



| 服务 | 备注 |
| --- | --- |
| 函数计算 FC | unzip解压函数部署在函数计算 |
| 对象存储 OSS | 待解压的zip文件和解压后的文件存放在对象存储 |

</service>

推荐您拥有以下的产品权限 / 策略:
<auth>



| 服务/业务 | 权限 | 备注 |
| --- | --- | --- |
| 函数计算 | AliyunFCFullAccess | 创建和更新 unzip 解压函数 |
| OSS | AliyunOSSFullAccess | 创建或更新 unzip 解压函数的 OSS 触发器 |

</auth>

<remark>



</remark>

<disclaimers>



</disclaimers>

## 部署 & 体验

<appcenter>

- :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) 该应用。
</appcenter>

<deploy>

- 通过 [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`
</deploy>

## 应用详情

<appdetail id="flushContent">

# 应用详情
![](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, 能满足绝大部分场景。
</appdetail>

## 使用文档

<usedetail id="flushContent">


## 参数说明


![](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
auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
dst_bucket_name = "xxx-bucket"
dst_bucket = oss2.Bucket(auth, endpoint, dst_bucket_name)
dst_bucket.put_object(newKey + name, file_obj)

```

</appdetail>
</usedetail>


<devgroup>


## 开发者社区

您如果有关于错误的反馈或者未来的期待,您可以在 [Serverless Devs repo Issues](https://github.com/serverless-devs/serverless-devs/issues) 中进行反馈和交流。如果您想要加入我们的讨论组或者了解 FC 组件的最新动态,您可以通过以下渠道进行:

<p align="center">
<p align="center">

| <img src="https://serverless-article-picture.oss-cn-hangzhou.aliyuncs.com/1635407298906_20211028074819117230.png" width="130px" > | <img src="https://serverless-article-picture.oss-cn-hangzhou.aliyuncs.com/1635407044136_20211028074404326599.png" width="130px" > | <img src="https://serverless-article-picture.oss-cn-hangzhou.aliyuncs.com/1635407252200_20211028074732517533.png" width="130px" > |
|--- | --- | --- |
| <center>微信公众号:\`serverless\`</center> | <center>微信小助手:\`xiaojiangwh\`</center> | <center>钉钉交流群:\`33947367\`</center> |

| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| <center>微信公众号:`serverless`</center> | <center>微信小助手:`xiaojiangwh`</center> | <center>钉钉交流群:`33947367`</center> |
</p>

</devgroup>
</devgroup>

0 comments on commit c5ef320

Please sign in to comment.