Getting Started with Ufop on Qiniu
====
这个教程的目的是快速上手部署和使用一个 Ufop 的应用。
当然这个教程开始前需要做一下的准备:
- 一个七牛账号
- 根据操作系统,下载相应版本的 qufopctl 工具,目前提供Linux 64位版、Linux 32位版,Windows 64位版、Mac 64位版。如果有特殊的需要,可以联系七牛的技术支持另外提供。
这个步骤中,首先需要通过 qufopctl 工具登陆您的账号,登陆可以使用下面两种方式:
$ qufopctl login <Username> <Passwd>
或者
$ qufopctl login <AccessKey> <SecretKey>
其中,<Username>
和<Passwd>
分别替换成您的用户名和密码,<AccessKey>
和<SecretKey>
可以在您的账号设置中找到。登陆之后用一下的命令可以注册一个 Ufop 操作:
$ qufopctl reg ufoptest -mode 2 -desc 'it is a test!'
Ufop name: ufoptest
Access mode: PRIVATE
Description: it is a test!
该命令注册了一个名为 ufoptest
的 ufop 操作,其中模式为私有,描述为 it is a test!
。具体命令中的参数可以参考 Ufop 完全操作指南。
Ufop 注册完成之后,您还需要提供一个监听80端口
的二进制服务程序和一个启动脚本形成的程序包。
其中二进制服务程序即为您实现的自定义的 fop 操作。具体的协议规则参考 Ufop 完全操作指南
下面提供一个 golang 实现返回文件 mimetype 的程序:ufoptest.go。将其编译为 Linux 64位 二进制服务程序 ufoptest:(该 demo 需要 golang 编译 Linux 64位环境,或者直接使用我们提供的程序)
$ GOOS=linux GOARCH=amd64 go build ufoptest.go
$ ls -l ufoptest
-rwxr-xr-x 1 user staff 5981884 Nov 17 14:26 ufoptest
该ufoptest
即为已经编译好的二进制服务程序。
你还需要提供一个名为start.sh
的 bash 启动脚本,该脚本通常需要完成对服务程序的启动工作。脚本内容如下:
#!/bin/bash
./ufoptest
保存即可。
将生成的二进制服务程序和启动脚本打成 tar 包,并保证 start.sh
在 tar 包的根目录下。
$ chmod a+x ufoptest # 保证二进制服务程序可执行
$ tar cvf UFOPTEST.tar ufoptest start.sh
a ufoptest
a start.sh
$ ls -l UFOPTEST.tar
-rw-r--r-- 1 forrest staff 5985792 Nov 17 17:19 UFOPTEST.tar
已经将 ufoptest
和 start.sh
打包成 UFOPTEST.tar
,然后将 UFOPTEST.tar
上传到您的任意七牛空间中。
使用 qufopctl 进行下面的操作,其中 weloveqiniu
替换成自己上传的 bucket:
$ qufopctl bind ufoptest -bucket weloveqiniu -key UFOPTEST.tar
即可完成绑定。
在完成绑定的动作后,由于还没有实例运行,因此 Ufop 还未处于未启动状态,下面通过 qufopctl 工具添加 Ufop 运行实例并启动 Ufop :
$ qufopctl resize ufoptest -num 2
Resize instance num from 2 to 2.
然后可以通过一下啊命令查询刚刚部署的 ufoptest
的基本信息:
$ qufopctl info ufoptest
Ufop name: ufoptest
Owner: 1380307171
Access mode: PRIVATE
Description: it is a test!
Create time: 2014-11-17 13:43:19 +0800 CST
Resource entry: qiniu:weloveqiniu:UFOPTEST2.tar
Base image: ubuntu
Instance num: 2
Max instanceNum: 5
Access list: 1380307171
通过下面的命令可以查询到ufoptest
运行实例的基本状态
$ qufopctl state ufoptest
instance 1 [state] Running
instance 2 [state] Running
Ufop 启动了之后,就可以直接通过 URL 同步触发或者使用持久化处理操作使用该 Ufop。
http://itisatest.qiniudn.com/gogopher.jpg?ufoptest
通过上面的 URL 就会返回该图片的 mimetype 类型 image/jpeg
。