Openmediavault百度网盘同步解决方案

  • Lv2
    • 话题10
    • 回复5
    • 经验值7
    解答达人
zhizhuwang21 #4104
  • 国内网盘众多,要想与OMV进行同步确实挺烧脑,虽然目前没有开发者针对OMV开发百度云的同步插件,但是国内有大神开发了linux的同步脚本,通过脚本我们可以解决同步的问题。根据搜索引擎检索结果,目前国内有好几个开发者开发了脚本,本篇仅以SyncY脚本为例进行说明,再次感谢开发者辛勤的工作让我们用上这么好的脚本,更多脚本信息可以访问开发者官网。
    目前SyncY有四三个版本:Bash、Perl、Python,此外还有个wordpress的插件,那么各版本有和区别呢,这里引用官网的解释:

    • Bash版安装包小,最简单,只要有bash和curl就可以运行,占用内存也较小些,但是速度慢,稳定性也稍差点,适合需要同步的文件数量少的场合,如果文件数量达到2、3千甚至更多时性能较差,同时下载的速度不知为何也较低,不能满速下载。
    • Perl版性能和稳定性都很好,上传下载速度几乎可满速运行,1.0.4版安装包需要1M的空间,比上个版本降低不少,启动基础内存占用在6M左右,同步文件数量在1万左右时会耗用不到8M的内存,但最大的缺点是openwrt上不能支持2G及以上的大文件,如果没有大文件的同步需求,Perl版也是不错的。
    • Python版性能和稳定性和Perl一样,上传下载速度几乎可满速运行,只是安装包空间占用较大,在4M左右,但可以支持2G及以上的大文件(4G以上也可以支持),启动基础内存占用在8M多,同步文件数量在1万左右时会耗用10M左右的内存。
    • 本篇以Python版为例进行介绍,首先上官网下载最新版的脚本文件。其实官网有给出详细的配置说明,只是针对Openwrt的教程,但linux大同小异,参考意义非常大。撰写本篇文章时版本为v2.1.2,不排除后续新版本配置参数和界面有变化,一切以官网说明为准,本文也只是借花献佛。下载解压后包括以下文件:

    • change.log
    • syncy
    • syncy.py
    • syncy-cifs.py
    • 安装说明.txt

    在OMV中/etc/目录下新建/config文件夹,然后将syncy配置文件复制到该目录,将syncy.py复制到/usr/bin目录,给syncy.py文件可执行权限。然后修改syncy配置文件,以下是引用的官方配置参数说明:
    config syncy

    option syncyerrlog ” #错误日志文件名(必须包含完整路径名),为空时则不记录。
    option syncylog ” #运行日志文件名(必须包含完整路径名),为空时则不记录。
    option blocksize ’10’ #分片上传或下载大小,单位M。
    option ondup ‘rename’ #重名文件处理方式,rename:重命名,overwrite:覆盖。
    option datacache ‘on’ #是否开启同步信息缓存,on:开启,off:关闭。
    option slicedownload ‘on’ #是否开启分片下载,on:开启,off:关闭(python 1.0.15版新增)。(v2多线程版删除了此配置项,多线程必须分片下载)
    option excludefiles ‘*/Thumbs.db’ #排除文件设置,支持通配符*,多个排除选项用分号(;)隔开。
    option listnumber ‘100’ #每次获取云端文件列表数量。
    option retrytimes ‘3’ #发生错误后的重试次数。
    option retrydelay ‘3’ #发生错误后的重试延时。
    option maxsendspeed ‘0’ #最大上传速度,单位 byte/s,0表示不限速。
    option maxrecvspeed ‘0’ #最大下载速度,单位 byte/s,0表示不限速。
    option syncperiod ‘0-24′ #同步程序运行时间段。
    option syncinterval ‘3600’ #每次同步完成后到下次同步间隔时间。
    option speedlimitperiod ‘0-0′ #限速时间段 (v2多线程版新增)
    option tasknumber ‘2’ #同时同步的任务数(v2多线程版新增)
    option threadnumber ‘2’ #每个任务的线程数(v2多线程版新增)config syncpath
    option localpath ‘/mnt/example’ #本地同步目录
    option remotepath ‘/example’ #云端目录(与/我的应用程序/SyncY的相对目录)
    option enable ‘1’ #1-启用,0-停用
    option synctype ‘upload’ #同步类型,支持的类型有:upload,upload+,download,download+,sync
    

    同步参数部分可以按需设置,如果没特殊需求可以使用默认参数,同步路径和同步模式是需要我们设置的,本地目录设置为NAS中用来同步百度云的路径,
    云端目录是百度网盘中的目录名,脚本会自动设置,同步类型有几种:上传、增量上传、下载、增量下载、同步。比如我的路径配置如下,记得把注释符号#删除:

    config syncpath
    option localpath ‘/media/0774c882-c091-4fc2-b258-8ad9543c980b/baiduyun’
    option remotepath ‘/baiduyun’ # real full path is ‘/apps/SyncY/example’
    option enable ‘1’
    option synctype ‘sync’

    配置好后获取百度云的API授权,在终端中执行“syncy.py”,结果终端报错,这是缺少依赖组件的原因,手动安装依赖包:apt-get install python-pycurl,若提示其它依赖错误,可手动安装对应的软件包。

    syncy.py
    Traceback (most recent call last):
    File “/usr/bin/syncy.py”, line 30, in
    import pycurl
    ImportError: No module named pycurl
    

    再次运行“syncy.py”出现以下结果
    root@nas:~# syncy.py
    Device binding Guide:
    1. Open web browser to visit:”https://openapi.baidu.com/device

查看 12 回复 - 91 至 102 (总计 102)
    • Lv1
      • 话题0
      • 回复5
      • 经验值1
    jwj630 #18800

    感谢分享,学习一下!

    • Lv1
      • 话题0
      • 回复16
      • 经验值4
    闹不闹 #18808

    感谢分享,学习一下!

    • Lv1
      • 话题0
      • 回复15
      • 经验值3
    szcrc #18867

    感谢分享,学习一下!

    • Lv1
      • 话题0
      • 回复15
      • 经验值3
    h5536 #18906

    支持一下支持一下支持一下支持一下

    • Lv1
      • 话题0
      • 回复18
      • 经验值4
    95251238 #18928

    谢谢分享!!支持一下啊。

    • Lv1
      • 话题0
      • 回复1
      • 经验值0
    menghuanrsl #19140

    感谢分享,支持一下!

    • Lv1
      • 话题0
      • 回复15
      • 经验值3
    yvan #19169

    学习一下,有点看不懂

    • Lv1
      • 话题0
      • 回复15
      • 经验值3
      vip
    chinacwj #19181

    支持~~~~~~~~~~

    • Lv1
      • 话题0
      • 回复15
      • 经验值3
    syouseki #19234

    支持一下,感谢分享

    • Lv1
      • 话题0
      • 回复15
      • 经验值3
    subverse #19300

    不错,学习一下

    • Lv1
      • 话题0
      • 回复1
      • 经验值0
    lo2wi #19322

    感谢分享,这是刚需啊

    • Lv1
      • 话题0
      • 回复4
      • 经验值1
    jacson688 #19404

    这个软件还可以同步百度网盘?

查看 12 回复 - 91 至 102 (总计 102)