SVN经过钩子同步更新静态文件并上传OSS

SVN经过钩子同步更新静态文件并上传OSS

  • 需求:

须要高频率的更新oss上多个bucket的不一样目录的内容。shell

  • 解决方案描述:

在svn上新建一个或者多个独立的库,在每一个库编辑hooks下的post-commit文件添加命令。svn

  • 注意事项:

须要安装ossutil64 oss上传工具,配置ossutil conf文件,svn权限密码等工具

安装ossutil64

根据您的操做系统选择相应的binary或者压缩包,下载后运行相应的binary。  
Linux系统(以64位系统为例)  
下载工具:  
wget http://gosspublic.alicdn.com/ossutil/1.6.0/ossutil64  
                                  
修改文件执行权限:  
chmod 755 ossutil64  
使用交互式配置生成配置文件:  
./ossutil64 config  
该命令建立将一个配置文件,在其中存储配置信息。 请输入配置文件路径(默认为:/home/user/.ossutilconfig,回车将使用默认路径。若是用户设置为 其它路径,在使用命令时须要将--config-file选项设置为该路径):   
未输入配置文件路径,将使用默认配置文件:/home/user/.ossutilconfig。   
对于下述配置,回车将跳过相关配置项的设置,配置项的具体含义,请使用"help config"命令查看。   
请输入endpoint:http://oss-cn-shenzhen.aliyuncs.com   
请输入accessKeyID:yourAccessKeyID   
请输入accessKeySecret:yourAccessKeySecret  
请输入stsToken:   
endpoint:填写Bucket所在地域的域名信息,可参考访问域名和数据中心。  
accessKeyID:查看方式请参考建立AccessKey。  
accessKeySecret:查看方式请参考建立AccessKey。  
stsToken:非必配项,若采用STS临时受权方式访问OSS须要配置该项,不然置空便可。stsToken生成方式参考临时访问凭证

建立专用版本库

创建版本库目录 选择一个目录以后
mkdir -p svntestpost

*创建版本库
svnadmin create svntest操作系统

*SVN的hookscode

#start-commit 提交前触发事务  
#pre-commit 提交完成前触发事务  
#post-commit 提交完成时触发事务  
#pre-revprop-change 版本属性修改前触发事务  
#post-revprop-change 版本属性修改后触发事务


编写 post-commit 文件

[root@hooks]# cd /data  
[root@hooks]# svn checkout svn://17.17.177.177/svntest test  
在项目库的 hooks/ 目录下新建 post-commit 文件 【钩子脚本】  
[root@hooks]#  cd hooks/  
[root@hooks]# ls  
post-commit       post-lock.tmpl            post-unlock.tmpl  pre-lock.tmpl       pre-revprop-change.tmpl  start-commit.tmpl  
post-commit.tmpl  post-revprop-change.tmpl  pre-commit.tmpl   pre-revprop-change  pre-unlock.tmpl  
[root@hooks]# pwd  
/data/svn/svntest/hooks
[root@ hooks]# cat post-commit  
#!/bin/sh

  
REPOS="$1"  
REV="$2"

mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf

  
WEB=/data/test  
svn update $WEB

/data/shell/oss/ossutil64 cp  -r  -f  $WEB oss://dev/xxx/  -c  /data/shell/oss/oss.config  
/data/shell/oss/ossutil64 cp  -r  -f  $WEB oss://sit/xxx/  -c  /data/shell/oss/oss.config  
/data/shell/oss/ossutil64 cp  -r  -f  $WEB oss://uat/xxxx/  -c  /data/shell/oss/oss.config
相关文章
相关标签/搜索