通过onedata事件触发webhook
onetrigger的Python项目详细描述
一个装配工
一种命令行工具,用于检测onedata文件事件以触发webhook。
安装
onetrigger需要python3
和python3-pip
工具。python包索引(pypi)中有一个名为onetrigger
的包,因此可以很容易地安装它,执行:
pip3 install onetrigger
也可以在releases部分下载二进制文件。
用法
参数可以通过参数或环境变量传递。下面介绍所有可用的命令及其参数:
命令run
订阅文件事件。
Argument | Environment variable | Description |
---|---|---|
^{ | ^{ | Oneprovider hostname or IP. |
^{ | ^{ | Onedata access token. |
^{ | ^{ | Onedata space. |
^{ | ^{ | Webhook to send events. |
^{ | ^{ | Folder to listen events (Optional). |
^{ | ^{ | Connect to a provider without a trusted certificate (Optional). Default: ^{ |
命令list-spaces
在OneProvider中列出可用空间。
Argument | Environment variable | Description |
---|---|---|
^{ | ^{ | Oneprovider hostname or IP. |
^{ | ^{ | Onedata access token. |
^{ | ^{ | Connect to a provider without a trusted certificate (Optional). Default: ^{ |
示例
订阅文件事件
onetrigger run -H example.com -t xxxxx -s my-onedata-space -w http://example.com/webhook -f my-folder
部署在Kubernetes上
可以使用我们的公共Docker集线器映像grycap/onetrigger在Kubernetes上部署onetrigger,方法是应用这样的yaml文件:
apiVersion:apps/v1beta1kind:Deploymentmetadata:name:onetriggerspec:replicas:1spec:containers:-name:onetriggerimage:grycap/onetrigger:latestimagePullPolicy:Alwaysenv:-name:ONEPROVIDER_HOSTvalue:"example.com"-name:ONEDATA_ACCESS_TOKENvalue:"xxxxx"-name:ONEDATA_SPACEvalue:"my-onedata-space"-name:ONETRIGGER_WEBHOOKvalue:"http://example.com/webhook"-name:ONEDATA_SPACE_FOLDERvalue:"my-folder"
事件格式
当在空间(或指定文件夹)内创建新文件时,将按照以下示例的结构向webhook发送json格式的事件:
{"Key":"/my-onedata-space/files/file.txt","Records":[{"objectKey":"file.txt","objectId":"0000034500046EE9C67756964233836666330363031303664303964623739666562393165336632306232613736236664323861626330656664643566313938313333336633356232333838623137","eventTime":"2019-02-07T09:51:04.347823","eventSource":"OneTrigger"}]}