为毛 同一 bucket 中进行目录调整后 要重新传送?!

环境:

  • qrsync v2.7.20140630
  • MAC OS X 10.9.5

现象

因为一个目录中子目录太多,
根据年份进行了调整,结果在 qrsync 时,发现了这种报告:

2014/10/02 13:48:54.561907 [INFO][qbox.us/qrsync/v2/sync] 
sync.go:78: Move 
zoomq:ZHGDG/130513-14-gdgorgsummit-sf/134M_130513_1057.MP3
 => 
zoomq:ZHGDG/2013/130513-14-gdgorgsummit-sf/134M_130513_1057.MP3

分析

俺知道的背景:

  • 7牛,不是 Dropbox, 是单向高速数据发布空间
  • 7牛,不是 GFS, 以平均 1.5 倍备份空间,获得业界顶级数据完备率
  • 7牛,没有目录概念, 只有数据ID 的操作

所以, 对于相同文件, 7牛是知道的,
移动,对于 7牛空间,只是一个数据对象的 ID 变化而已;
对于本例, 意味着:

  • bucket zoomq 中的
  • ZHGDG/130513-14-gdgorgsummit-sf/134M_130513_1057.MP3
  • ID, 变更 为
  • ZHGDG/2013/130513-14-gdgorgsummit-sf/134M_130513_1057.MP3

根本用不到重新传输的!

建议

MOVE 这一行为,进行优化,在核对 客户端和服务端 文件相同后,
直接更名就好,不要重新从客户端再上传真实的数据了!

另外, link 这种行为也可以考虑支持了.

阅读 2.3k
1 个回答

七牛的move接口本身就是执行的更名操作,并不会产生流量,和bash命令中的mv操作性质是一致的。

另外关于软链接的支持,这个是qrsync及其他同步工具需要调整的部分,下一版本的qrsync会对相关部分进行修正。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进