OSS 用于存储一些资源文件。

使用方式

f.yml 中配置函数和触发器。

  1. service:
  2. name: midway-faas-examples
  3. provider:
  4. name: aliyun
  5. functions:
  6. ossTrigger:
  7. handler: oss.handler
  8. events:
  9. - os:
  10. bucket: ossBucketName
  11. events:
  12. - oss:ObjectCreated:*
  13. - oss:ObjectRemoved:DeleteObject
  14. filter:
  15. prefix: filterdir/
  16. suffix: .jpg
  17. package:
  18. artifact: code.zip

f deploy 后,即可。

开发支持

针对 OSS 触发器,我们提供了传入的事件类型定义。

  1. import { FC } from '@midwayjs/faas';
  2. export class OSSText {
  3. @Func('oss.handler')
  4. async handler(event: FC.OSSEvent) {
  5. // TODO
  6. }
  7. }

本地开发

使用 f invoke 命令进行触发。

  1. f invoke -f [你的函数名]

本地测试

这里没有传 data,会默认通过 f.yml 获取触发器类型传入模拟数据。

  1. // test
  2. describe('/test/index.test.ts', () => {
  3. it('invoke', async () => {
  4. await invoke({
  5. functionName: 'ossTrigger',
  6. });
  7. });
  8. });

注意

  • 1、一个 bucket 的一个前缀下只能支持配置一个触发器,如果配置多个会出现 message: event source 'oss' returned error: Cannot specify overlapping prefix and suffix with same event type. 的报错