不同后端数据迁移

seafile支持在文件系统、s3、ceph、swift、阿里云oss等存储后端之间互相迁移数据(swift暂不支持迁出), 如果你启用了存储后端加密的功能,目前是不能进行数据迁移的。
在不同后端迁移数据需要三个步骤:
1.新建临时 seafile.conf 文件
2.运行迁移脚本
3.替换 seafile.conf

新建临时 seafile.conf 文件

创建一个新的 seafile.conf, 填写目的后端的配置 (需要包含 [block_backend], [commit_object_backend], [fs_object_backend]), 保存到一个目录下, 如 /opt (此目录需要用户具有读取权限)

例如,要迁移到阿里云后端:

  1. cat > seafile.conf << EOF
  2. [block_backend]
  3. name = oss
  4. key_id = LTAIXX****
  5. key = 4BY7WEN*****
  6. bucket = seafblk
  7. endpoint = oss-cn-shanghai.aliyuncs.com
  8. [commit_object_backend]
  9. name = oss
  10. key_id = LTAIBk*****
  11. key = s6jaAJev******
  12. bucket = seafcomm
  13. endpoint = oss-cn-shanghai.aliyuncs.com
  14. [fs_object_backend]
  15. name = oss
  16. key_id = LTAIr9******
  17. key = K95ajKksD******
  18. bucket = seaffs
  19. endpoint = oss-cn-shanghai.aliyuncs.com
  20. EOF
  21. mv seafile.conf /opt

将配置中的 key, bucket 等信息替换成自己的配置

运行迁移脚本

假设 seafile 的安装路径为 ~/haiwen, 进入 ~/haiwen/seafile-server-latest 目录下, 执行 migrate.sh, 参数为新建的 seafile.conf 所在目录,这里为 /opt

  1. cd ~/haiwen/seafile-server-latest
  2. ./migrate.sh /opt

替换 seafile.conf

对象迁移完成后, 需要将 seafile.conf 替换成新后端的配置

  1. mv /opt/seafile.conf ~/haiwen/conf

此时的 seafile.conf 中仅有关于后端的配置, 更多的配置项和配置方法,如 memcache等,可以参考 这篇文档 进行补充。
替换配置文件之后,重启seafile服务,就可以正常访问新后端的数据了。