同步目录到七牛CDN

基于七牛SDK实现目录上传和同步

使用官方提供的PHP SDK实现,重新使用PHP实现目录同步,而不是使用官方提供的Windows 程序,主要是因为 qrsbox.exe 会同步目录下的所有文件,包括 .svn 文件和一些项目配置文件,如 .project

七牛的PHP SDK下载地址:http://developer.qiniu.com/code/v7/sdk/php.html

本次实现的源码有几个功能:

  1. 同步普通文件,不同步英文点号开始的文件,比如 .svn、.project
  2. 将同步日志直接存放在同步的目录下,跟随 svn 进行管理
  3. 多机使用 svn 管理目录,在多机上进行同步,不会将整个项目重新同步,qrsbox.exe 将同步日志存放在 C 盘的用户目录,每在一台机器 checkout 项目,进行同步时都会完整地同步一次
  4. 通过 bat 脚本调用 php 代码,认证信息和 bucket 信息配置在源码中,每个 bat 脚本对应各自的 bucket,不再像 qrsbox.exe 切换 bucket 需要重新配置
  5. 增量同步,基于同步日志实现

PHP脚本每次执行都会比较目录下的所有文件,以此判断是否需要同步。

同名不同内容文件上传时会提示文件已存在,先删除旧文件,再提交新文件。

没有实现的功能:

  1. 目录监控,实时上传(比较少遇到实时将开发环境代码更新到生产环境)
  2. 断点续传(CDN较多存放小文件)
  3. 没有实现同步文件删除(同 qrsbox.exe)