CDN同步校验工具ruby版实现原理  --黄春霞

背景:

节点同步失败,所以考虑用一个简便的方式来执行;

大致流程:

节点,如果同步失败返回信息;

具体步骤:

1文件信息,这些信息包含 文件

2文件,根据提交者的名字查询该用户修改发布的文件名,将文件名转换成数组的元素

3校验平台上逐一校验,并返回信息;

下面是具体实现方式:

本机调试:

执行

svn log  --revision HEAD:{2012-11-24} http://svn.app.taobao.net/repos/malldetail/trunk/malldetail/

不是外部内部命令时请看下面:

Q1:

SVN 不是有内部或外部命令,也不是可运行的程序或批处理文件。

现场:

CMD显示:不是有内部或外部命令,也不是可运行的程序或批处理文件。、

SVN

解决方案:

  Win 7-64.

后,重新执行运行输出结果

参数,在这里可以尝试下:

svn log  --quiet --verbose  --revision HEAD:{2012-11-24} http://svn.app.taobao.net/repos/malldetail/trunk/malldetail/

 --quiet --verbose 参数加入后,输出信息将会输出更新文件的概要信息;

是为了后面读取方便),继续加参数:

svn log  --quiet --verbose  --xml  --revision HEAD:{2012-11-24} http://svn.app.taobao.net/repos/malldetail/trunk/malldetail/

中:


拿到前端要发布的文件信息了;

{svn log常用的几个参数

svn log [PATH]

svn log URL [PATH...]

 

:

--revision (-r) REV

--quiet (-q) 不打印信息,或只打印概要信息

--verbose (-v)  打印附加信息

--targets FILENAME 内容为附件参数

--stop-on-copy 可以关闭这种行为,这可以用来找出分支点

--incremental 给予适合串联的输出

--xml  XML

全局配置项说明

--username USER ARG

--password PASS ARG

--no-auth-cache 不要缓存用户认证令牌

--non-interactive 不要交互提示

--config-dir DIR 读取用户配置文件

}

文件,根据提交用户名字拿到该用户更新的文件,下面是具体的实现方式:

内容:

daqiu.lym

2012-12-27T09:49:13.386760Z

   action="M"

   kind="">/trunk/malldetail/assets/4.0a/common/util.js

   action="M"

   kind="">/trunk/malldetail/assets/4.0a/other/ishare.js

校验;

gsub;

XPath.match

Q2:XPath

** 因为不需要太多的内容,我们只需要获取部分内容

Q3:

 # #  xml解析

    #没有选取

    #doc = Document.new(File.open("my.xml"))

    #doc.elements.each("log/logentry/paths"){  |elem|

    # puts elem.attributes["path"]

    puts "start"

#}

第三步:将数组中的文件名放到CDN校验平台逐一校验

 校验平台: http://assets.f2e.taobao.net/ 

这里是直接的将文件名以及路径拼接到校验平台后的方式来实现:


然后校验页面的返回信息,根据返回信息作出相应的操作;

的环境,我在这里抛砖引玉,希望大家有更好的更简洁方便的方法,然后一起来探讨。



相关推荐

你的评论

就没有什么想说的吗?

最新博客

关于我们 移动版

©2017传客网    琼ICP备15003173号-2    

本站部分文章来源于互联网,版权归属于原作者。
本站所有转载文章言论不代表本站观点,如是侵犯了原作者的权利请发邮件联系站长(weishubao@126.com),我们收到后立即删除。
站内所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!

X