是否可能支持大目录的 Bucket 间迁移?

背景

俺作为社区大妈身份,申请到了 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 ?

进展

许式伟
给出了一个最舒服的方案:

这样这个子目录就被镜像到 <NewBucket> 里面了。
你每访问一个文件,就回被搬到 <NewBucket> ,虽然不是主动搬,但是可以达到搬家的效果。

测试检验

好的根据提示俺进行了如下操作:

  1. 在俺 floss 新Bucket 中的 镜像存储 配置了:

http://zoomq.qiniudn.com/ZQScrapBook/ZqFLOSS/

  1. 然后选择一个已经的文件,比如说:

http://zoomq.qiniudn.com/ZQScrapBook/ZqFLOSS/data/20100319212826/index.html

  1. 测试对应新Bucket 的实时迁移:

http://floss.qiniudn.com/data/20100319212826/index.html

{"error":"E404"}

难道,一定要从本地用 qboxrsctl 来?

刚刚再测试, 从客户端设置后, 在网页端出现相同的效果,

都是 镜像存储 配置的变化;

所以, 为毛 404 的?

阅读 3.5k
评论
    1 个回答

    有以下两种可能的思路:

    1. 有 key 列表的话,可以用 python 写一个程序,用七牛的 batch move api 进行迁移(每次 batch move 不建议同时太多文件,我没有测试,可能大约50个上下就好)。

    2. 不想写代码的,可以用惰性迁移方法:镜像存储。可以把原始 bucket 的一个子路径,镜像到新的 bucket 里面。具体是:

    qboxrsctl img <NewBucket> http://zoomq.qiniudn.com/ZQScrapBook/ZqSKM/tree/
    

    这样这个子目录就被镜像到 <NewBucket> 里面了。你每访问一个文件,就会被搬到 <NewBucket>,虽然不是主动搬,但是可以达到搬家的效果。

      撰写回答

      登录后参与交流、获取后续更新提醒

      相似问题
      七牛云问答
      合作问答

      七牛云 联合 SegmentFault 共同推出技术问答专区,为开发者们提供社区支持和帮助。在这里,你将直接获得...

      推荐文章