背景
俺作为社区大妈身份,申请到了 7牛的社区政策, 进而成为重度用户
将以往个人收集的技术相关 几万页面,涉及80万个子文件的 ScrapBooks 导出站整体分享在了7牛,
http://skm.zoomquiet.org/
301->
http://zoomq.qiniudn.com/ZQScrapBook/ZqSKM/tree/
需求
但是,最近发现这样对于本地的目录维护不方便,
所以,准备分离到不同的 Bucket 对应本地不同的目录,
而不是以往将所有共享资料装在一个很深的目录下,
最终形成类似:
http://skm.zoomquiet.org/
301->
http://skm.qiniudn.com/tree/
的形式,而本地只要修订一个脚本就可以一键完成多个 Bucket 的 qsync 同步
分析
但是,无论网页还是 qboxrsctl 命令行辅助工具 | 七牛云存储
都只有对单独文件的处理,
因为没有目录的概念,让 7牛可以极其快的完成对比/检验/上传/分布...
但是,目录俺这样,重新对几十G 数据,再次 qsync 一下,好象哪儿有不对...
所以,是否能支持已经发布在空间的大目录,一键迁移到指定 Bucket ?
进展
许式伟
给出了一个最舒服的方案:
-
不想写代码的,可以用惰性迁移方法:
镜像存储
。可以把原始 bucket 的一个子路径,镜像到新的 bucket 里面。具体是:qboxrsctl img
http://zoomq.qiniudn.com/ZQScrapBook/ZqSKM/tree/
这样这个子目录就被镜像到 <NewBucket>
里面了。
你每访问一个文件,就回被搬到 <NewBucket>
,虽然不是主动搬,但是可以达到搬家的效果。
测试检验
好的根据提示俺进行了如下操作:
- 在俺
floss
新Bucket 中的镜像存储
配置了:
http://zoomq.qiniudn.com/ZQScrapBook/ZqFLOSS/
- 然后选择一个已经的文件,比如说:
http://zoomq.qiniudn.com/ZQScrapBook/ZqFLOSS/data/20100319212826/index.html
- 测试对应新Bucket 的实时迁移:
http://floss.qiniudn.com/data/20100319212826/index.html
{"error":"E404"}
难道,一定要从本地用 qboxrsctl
来?
刚刚再测试, 从客户端设置后, 在网页端出现相同的效果,
都是 镜像存储
配置的变化;
所以, 为毛 404
的?
有以下两种可能的思路:
有 key 列表的话,可以用 python 写一个程序,用七牛的 batch move api 进行迁移(每次 batch move 不建议同时太多文件,我没有测试,可能大约50个上下就好)。
不想写代码的,可以用惰性迁移方法:镜像存储。可以把原始 bucket 的一个子路径,镜像到新的 bucket 里面。具体是:
这样这个子目录就被镜像到
<NewBucket>
里面了。你每访问一个文件,就会被搬到<NewBucket>
,虽然不是主动搬,但是可以达到搬家的效果。